mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-10 05:04:52 +00:00
HHH-17876 Changes for Hibernate Reactive 2.3
Change the scope of some methods and add some getters, so that subclasses in Hibernate Reactive can reuse some of the existing code.
This commit is contained in:
parent
6dc7f8328a
commit
12b3afced0
@ -50,7 +50,7 @@ public MutationOperation createMergeOperation(OptionalTableUpdate optionalTableU
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderUpsertStatement(OptionalTableUpdate optionalTableUpdate) {
|
protected void renderUpsertStatement(OptionalTableUpdate optionalTableUpdate) {
|
||||||
// template:
|
// template:
|
||||||
//
|
//
|
||||||
// merge into [table] as t
|
// merge into [table] as t
|
||||||
|
@ -211,4 +211,8 @@ public JdbcParametersList getJdbcParameters() {
|
|||||||
public EntityMappingType getEntityDescriptor() {
|
public EntityMappingType getEntityDescriptor() {
|
||||||
return entityDescriptor;
|
return entityDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JdbcOperationQuerySelect getJdbcSelect() {
|
||||||
|
return jdbcSelect;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -506,6 +506,7 @@ public Fetch generateFetch(
|
|||||||
fetchablePath,
|
fetchablePath,
|
||||||
this,
|
this,
|
||||||
collectionTableGroup,
|
collectionTableGroup,
|
||||||
|
referencedPropertyName != null,
|
||||||
fetchParent,
|
fetchParent,
|
||||||
creationState
|
creationState
|
||||||
);
|
);
|
||||||
@ -570,13 +571,14 @@ protected Fetch buildEagerCollectionFetch(
|
|||||||
NavigablePath fetchedPath,
|
NavigablePath fetchedPath,
|
||||||
PluralAttributeMapping fetchedAttribute,
|
PluralAttributeMapping fetchedAttribute,
|
||||||
TableGroup collectionTableGroup,
|
TableGroup collectionTableGroup,
|
||||||
|
boolean needsCollectionKeyResult,
|
||||||
FetchParent fetchParent,
|
FetchParent fetchParent,
|
||||||
DomainResultCreationState creationState) {
|
DomainResultCreationState creationState) {
|
||||||
return new EagerCollectionFetch(
|
return new EagerCollectionFetch(
|
||||||
fetchedPath,
|
fetchedPath,
|
||||||
fetchedAttribute,
|
fetchedAttribute,
|
||||||
collectionTableGroup,
|
collectionTableGroup,
|
||||||
referencedPropertyName != null,
|
needsCollectionKeyResult,
|
||||||
fetchParent,
|
fetchParent,
|
||||||
creationState
|
creationState
|
||||||
);
|
);
|
||||||
|
@ -2048,7 +2048,7 @@ public String generateSelectVersionString() {
|
|||||||
return select.addRestriction( rootTableKeyColumnNames ).toStatementString();
|
return select.addRestriction( rootTableKeyColumnNames ).toStatementString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private GeneratedValuesProcessor createGeneratedValuesProcessor(
|
protected GeneratedValuesProcessor createGeneratedValuesProcessor(
|
||||||
EventType timing,
|
EventType timing,
|
||||||
List<AttributeMapping> generatedAttributes) {
|
List<AttributeMapping> generatedAttributes) {
|
||||||
return new GeneratedValuesProcessor( this, generatedAttributes, timing, getFactory() );
|
return new GeneratedValuesProcessor( this, generatedAttributes, timing, getFactory() );
|
||||||
@ -3433,16 +3433,12 @@ private void doLateInit() {
|
|||||||
insertGeneratedProperties = initInsertGeneratedProperties( insertGeneratedAttributes );
|
insertGeneratedProperties = initInsertGeneratedProperties( insertGeneratedAttributes );
|
||||||
updateGeneratedProperties = initUpdateGeneratedProperties( updateGeneratedAttributes );
|
updateGeneratedProperties = initUpdateGeneratedProperties( updateGeneratedAttributes );
|
||||||
|
|
||||||
|
insertDelegate = createInsertDelegate();
|
||||||
|
updateDelegate = createUpdateDelegate();
|
||||||
|
|
||||||
if ( isIdentifierAssignedByInsert() ) {
|
if ( isIdentifierAssignedByInsert() ) {
|
||||||
final OnExecutionGenerator generator = (OnExecutionGenerator) getGenerator();
|
|
||||||
insertDelegate = generator.getGeneratedIdentifierDelegate( this );
|
|
||||||
identitySelectString = getIdentitySelectString( factory.getJdbcServices().getDialect() );
|
identitySelectString = getIdentitySelectString( factory.getJdbcServices().getDialect() );
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
insertDelegate = GeneratedValuesHelper.getGeneratedValuesDelegate( this, INSERT );
|
|
||||||
}
|
|
||||||
|
|
||||||
updateDelegate = GeneratedValuesHelper.getGeneratedValuesDelegate( this, UPDATE );
|
|
||||||
|
|
||||||
if ( hasInsertGeneratedProperties() ) {
|
if ( hasInsertGeneratedProperties() ) {
|
||||||
insertGeneratedValuesProcessor = createGeneratedValuesProcessor( INSERT, insertGeneratedAttributes );
|
insertGeneratedValuesProcessor = createGeneratedValuesProcessor( INSERT, insertGeneratedAttributes );
|
||||||
@ -3469,6 +3465,18 @@ private void doLateInit() {
|
|||||||
sqlVersionSelectString = generateSelectVersionString();
|
sqlVersionSelectString = generateSelectVersionString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected GeneratedValuesMutationDelegate createInsertDelegate() {
|
||||||
|
if ( isIdentifierAssignedByInsert() ) {
|
||||||
|
final OnExecutionGenerator generator = (OnExecutionGenerator) getGenerator();
|
||||||
|
return generator.getGeneratedIdentifierDelegate( this );
|
||||||
|
}
|
||||||
|
return GeneratedValuesHelper.getGeneratedValuesDelegate( this, INSERT );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected GeneratedValuesMutationDelegate createUpdateDelegate() {
|
||||||
|
return GeneratedValuesHelper.getGeneratedValuesDelegate( this, UPDATE );
|
||||||
|
}
|
||||||
|
|
||||||
private EntityTableMapping findTableMapping(String tableName) {
|
private EntityTableMapping findTableMapping(String tableName) {
|
||||||
for ( int i = 0; i < tableMappings.length; i++ ) {
|
for ( int i = 0; i < tableMappings.length; i++ ) {
|
||||||
if ( tableMappings[i].getTableName().equals( tableName ) ) {
|
if ( tableMappings[i].getTableName().equals( tableName ) ) {
|
||||||
|
@ -117,7 +117,7 @@ protected MutationOperationGroup createOperationGroup(ValuesAnalysis valuesAnaly
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleValueGeneration(
|
protected void handleValueGeneration(
|
||||||
AttributeMapping attributeMapping,
|
AttributeMapping attributeMapping,
|
||||||
MutationGroupBuilder mutationGroupBuilder,
|
MutationGroupBuilder mutationGroupBuilder,
|
||||||
OnExecutionGenerator generator) {
|
OnExecutionGenerator generator) {
|
||||||
|
@ -212,7 +212,10 @@ public <T> MappingModelExpressible<T> getResolvedMappingModelType(SqmParameter<T
|
|||||||
return ( (Number) list.get( 0 ) ).intValue();
|
return ( (Number) list.get( 0 ) ).intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression createCountStar(
|
/**
|
||||||
|
* Used by Hibernate Raective
|
||||||
|
*/
|
||||||
|
protected Expression createCountStar(
|
||||||
SessionFactoryImplementor factory,
|
SessionFactoryImplementor factory,
|
||||||
MultiTableSqmMutationConverter sqmConverter) {
|
MultiTableSqmMutationConverter sqmConverter) {
|
||||||
final SqmExpression<?> arg = new SqmStar( factory.getNodeBuilder() );
|
final SqmExpression<?> arg = new SqmStar( factory.getNodeBuilder() );
|
||||||
|
@ -113,7 +113,7 @@ public abstract class AbstractEntityInitializer extends AbstractFetchParentAcces
|
|||||||
private EntityKey entityKey;
|
private EntityKey entityKey;
|
||||||
private Object version;
|
private Object version;
|
||||||
private Object entityInstance;
|
private Object entityInstance;
|
||||||
private Object entityInstanceForNotify;
|
protected Object entityInstanceForNotify;
|
||||||
protected State state = State.UNINITIALIZED;
|
protected State state = State.UNINITIALIZED;
|
||||||
private boolean isOwningInitializer;
|
private boolean isOwningInitializer;
|
||||||
private Object[] resolvedEntityState;
|
private Object[] resolvedEntityState;
|
||||||
|
@ -264,6 +264,10 @@ protected void setProcessed(boolean processed) {
|
|||||||
this.processed = processed;
|
this.processed = processed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean isProcessed() {
|
||||||
|
return processed;
|
||||||
|
}
|
||||||
|
|
||||||
protected Object getIdentifier() {
|
protected Object getIdentifier() {
|
||||||
return identifier;
|
return identifier;
|
||||||
}
|
}
|
||||||
|
@ -197,4 +197,22 @@ public EntityResultImpl getEntityResult() {
|
|||||||
public void collectValueIndexesToCache(BitSet valueIndexes) {
|
public void collectValueIndexesToCache(BitSet valueIndexes) {
|
||||||
entityResult.collectValueIndexesToCache( valueIndexes );
|
entityResult.collectValueIndexesToCache( valueIndexes );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* BEGIN: For Hibernate Reactive
|
||||||
|
*/
|
||||||
|
protected DomainResult<?> getKeyResult() {
|
||||||
|
return keyResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected NotFoundAction getNotFoundAction() {
|
||||||
|
return notFoundAction;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getSourceAlias() {
|
||||||
|
return sourceAlias;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* END: Hibernate Reactive: make sure values are accessible from subclass
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user