Refactoring, removed InFlightEntityMappingType#finishMappingModelInitialization method

This commit is contained in:
Andrea Boriero 2019-12-16 11:15:26 +00:00
parent 287808a914
commit d5715e3fbc
5 changed files with 21 additions and 47 deletions

View File

@ -23,7 +23,6 @@
import org.hibernate.internal.util.collections.ArrayHelper; import org.hibernate.internal.util.collections.ArrayHelper;
import org.hibernate.mapping.Component; import org.hibernate.mapping.Component;
import org.hibernate.mapping.Property; import org.hibernate.mapping.Property;
import org.hibernate.mapping.ToOne;
import org.hibernate.metamodel.mapping.internal.MappingModelCreationHelper; import org.hibernate.metamodel.mapping.internal.MappingModelCreationHelper;
import org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess; import org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess;
import org.hibernate.metamodel.mapping.internal.SingularAssociationAttributeMapping; import org.hibernate.metamodel.mapping.internal.SingularAssociationAttributeMapping;
@ -194,14 +193,6 @@ else if ( subtype instanceof EntityType ) {
compositeType.getCascadeStyle( attributeIndex ), compositeType.getCascadeStyle( attributeIndex ),
creationProcess creationProcess
); );
MappingModelCreationHelper.interpretKeyDescriptor(
singularAssociationAttributeMapping,
bootPropertyDescriptor,
(ToOne) bootPropertyDescriptor.getValue(),
entityPersister,
dialect,
creationProcess
);
attributeMappings.put( bootPropertyDescriptor.getName(), singularAssociationAttributeMapping ); attributeMappings.put( bootPropertyDescriptor.getName(), singularAssociationAttributeMapping );
// todo (6.0) : not sure it is always correct // todo (6.0) : not sure it is always correct
columnPosition++; columnPosition++;

View File

@ -35,8 +35,4 @@ default void linkWithSubType(EntityMappingType sub, MappingModelCreationProcess
default void prepareMappingModel(MappingModelCreationProcess creationProcess) { default void prepareMappingModel(MappingModelCreationProcess creationProcess) {
// by default do nothing - support for legacy impls // by default do nothing - support for legacy impls
} }
default void finishMappingModelInitialization(MappingModelCreationProcess creationProcess) {
// by default do nothing
}
} }

View File

@ -1281,12 +1281,11 @@ public JavaTypeDescriptor getMappedJavaTypeDescriptor() {
} }
} }
public static SingularAssociationAttributeMapping buildSingularAssociationAttributeMapping( public static SingularAssociationAttributeMapping buildSingularAssociationAttributeMapping(
String attrName, String attrName,
int stateArrayPosition, int stateArrayPosition,
Property bootProperty, Property bootProperty,
ManagedMappingType declaringType, EntityPersister declaringType,
EntityType attrType, EntityType attrType,
PropertyAccess propertyAccess, PropertyAccess propertyAccess,
CascadeStyle cascadeStyle, CascadeStyle cascadeStyle,
@ -1316,7 +1315,7 @@ public static SingularAssociationAttributeMapping buildSingularAssociationAttrib
final FetchStrategy fetchStrategy = new FetchStrategy( fetchTiming, fetchStyle ); final FetchStrategy fetchStrategy = new FetchStrategy( fetchTiming, fetchStyle );
return new SingularAssociationAttributeMapping( final SingularAssociationAttributeMapping attributeMapping = new SingularAssociationAttributeMapping(
attrName, attrName,
stateArrayPosition, stateArrayPosition,
(ToOne) bootProperty.getValue(), (ToOne) bootProperty.getValue(),
@ -1326,6 +1325,25 @@ public static SingularAssociationAttributeMapping buildSingularAssociationAttrib
declaringType, declaringType,
propertyAccess propertyAccess
); );
creationProcess.registerInitializationCallback(
() -> {
final Dialect dialect = creationProcess.getCreationContext()
.getSessionFactory()
.getJdbcServices()
.getDialect();
MappingModelCreationHelper.interpretKeyDescriptor(
attributeMapping,
bootProperty,
(ToOne) bootProperty.getValue(),
declaringType,
dialect,
creationProcess
);
return true;
}
);
return attributeMapping;
} }
} }

View File

@ -66,12 +66,6 @@ private void execute() {
entityPersister.prepareMappingModel( this ); entityPersister.prepareMappingModel( this );
} }
for ( EntityPersister entityPersister : entityPersisterMap.values() ) {
currentlyProcessingRole = entityPersister.getEntityName();
entityPersister.finishMappingModelInitialization( this );
}
while ( postInitCallbacks != null && ! postInitCallbacks.isEmpty() ) { while ( postInitCallbacks != null && ! postInitCallbacks.isEmpty() ) {
// copy to avoid CCME // copy to avoid CCME
final ArrayList<PostInitCallback> copy = new ArrayList<>( new ArrayList<>( postInitCallbacks ) ); final ArrayList<PostInitCallback> copy = new ArrayList<>( new ArrayList<>( postInitCallbacks ) );

View File

@ -124,7 +124,6 @@
import org.hibernate.mapping.Selectable; import org.hibernate.mapping.Selectable;
import org.hibernate.mapping.Subclass; import org.hibernate.mapping.Subclass;
import org.hibernate.mapping.Table; import org.hibernate.mapping.Table;
import org.hibernate.mapping.ToOne;
import org.hibernate.metadata.ClassMetadata; import org.hibernate.metadata.ClassMetadata;
import org.hibernate.metamodel.RepresentationMode; import org.hibernate.metamodel.RepresentationMode;
import org.hibernate.metamodel.mapping.AttributeMapping; import org.hibernate.metamodel.mapping.AttributeMapping;
@ -5781,27 +5780,6 @@ public void prepareMappingModel(MappingModelCreationProcess creationProcess) {
); );
} }
@Override
public void finishMappingModelInitialization(MappingModelCreationProcess creationProcess) {
singularAssociationsToFinilize.forEach( (property, singularAssociationAttributeMapping) -> {
final Dialect dialect = creationProcess.getCreationContext()
.getSessionFactory()
.getJdbcServices()
.getDialect();
MappingModelCreationHelper.interpretKeyDescriptor(
singularAssociationAttributeMapping,
property,
(ToOne) property.getValue(),
this,
dialect,
creationProcess
);
} );
singularAssociationsToFinilize.clear();
}
protected static SqmMultiTableMutationStrategy interpretSqmMultiTableStrategy( protected static SqmMultiTableMutationStrategy interpretSqmMultiTableStrategy(
AbstractEntityPersister entityMappingDescriptor, AbstractEntityPersister entityMappingDescriptor,
MappingModelCreationProcess creationProcess) { MappingModelCreationProcess creationProcess) {
@ -5969,8 +5947,6 @@ private static EntityVersionMapping generateVersionMapping(
throw new NotYetImplementedFor6Exception( AbstractEntityPersister.class ); throw new NotYetImplementedFor6Exception( AbstractEntityPersister.class );
} }
Map<Property,SingularAssociationAttributeMapping> singularAssociationsToFinilize = new HashMap<>( );
private AttributeMapping generateNonIdAttributeMapping( private AttributeMapping generateNonIdAttributeMapping(
NonIdentifierAttribute tupleAttrDefinition, NonIdentifierAttribute tupleAttrDefinition,
Property bootProperty, Property bootProperty,
@ -6042,7 +6018,6 @@ else if ( attrType instanceof EntityType ) {
tupleAttrDefinition.getCascadeStyle(), tupleAttrDefinition.getCascadeStyle(),
creationProcess creationProcess
); );
singularAssociationsToFinilize.put( bootProperty,attributeMapping );
return attributeMapping; return attributeMapping;
} }