Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
import org.hibernate.boot.model.relational.ColumnOrderingStrategy;
import org.hibernate.boot.model.relational.ColumnOrderingStrategyLegacy;
import org.hibernate.boot.model.relational.Database;
import org.hibernate.boot.model.relational.Namespace;
import org.hibernate.boot.model.relational.Sequence;
import org.hibernate.boot.query.NamedHqlQueryDefinition;
import org.hibernate.boot.query.NamedNativeQueryDefinition;
import org.hibernate.boot.query.NamedProcedureCallDefinition;
Expand All @@ -39,18 +37,13 @@
import org.hibernate.engine.config.spi.ConfigurationService;
import org.hibernate.engine.spi.FilterDefinition;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.event.service.spi.EventListenerGroup;
import org.hibernate.event.service.spi.EventListenerRegistry;
import org.hibernate.event.spi.EventType;
import org.hibernate.mapping.Collection;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.Component;
import org.hibernate.mapping.FetchProfile;
import org.hibernate.mapping.ForeignKey;
import org.hibernate.mapping.MappedSuperclass;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.PrimaryKey;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.Table;
import org.hibernate.mapping.UserDefinedObjectType;
import org.hibernate.mapping.UserDefinedType;
Expand All @@ -59,7 +52,6 @@
import org.hibernate.query.named.NamedObjectRepository;
import org.hibernate.query.sqm.function.SqmFunctionDescriptor;
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
import org.hibernate.service.spi.ServiceRegistryImplementor;
import org.hibernate.tool.schema.Action;
import org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.ActionGrouping;
import org.hibernate.type.spi.TypeConfiguration;
Expand Down Expand Up @@ -331,28 +323,23 @@ public Map<String, SqmFunctionDescriptor> getSqlFunctionMap() {
@Override
public Set<String> getContributors() {
final HashSet<String> contributors = new HashSet<>();

entityBindingMap.forEach(
(s, persistentClass) -> contributors.add( persistentClass.getContributor() )
);

for ( Namespace namespace : database.getNamespaces() ) {
for ( Table table : namespace.getTables() ) {
entityBindingMap.forEach( (s, persistentClass)
-> contributors.add( persistentClass.getContributor() ) );
for ( var namespace : database.getNamespaces() ) {
for ( var table : namespace.getTables() ) {
contributors.add( table.getContributor() );
}

for ( Sequence sequence : namespace.getSequences() ) {
for ( var sequence : namespace.getSequences() ) {
contributors.add( sequence.getContributor() );
}
}

return contributors;
}

@Override
public java.util.Collection<Table> collectTableMappings() {
ArrayList<Table> tables = new ArrayList<>();
for ( Namespace namespace : database.getNamespaces() ) {
final ArrayList<Table> tables = new ArrayList<>();
for ( var namespace : database.getNamespaces() ) {
tables.addAll( namespace.getTables() );
}
return tables;
Expand All @@ -370,27 +357,27 @@ public NamedObjectRepository buildNamedQueryRepository() {

@Override
public void orderColumns(boolean forceOrdering) {
final ColumnOrderingStrategy columnOrderingStrategy = metadataBuildingOptions.getColumnOrderingStrategy();
final var columnOrderingStrategy = metadataBuildingOptions.getColumnOrderingStrategy();
// No need to order columns when using the no-op strategy
if ( columnOrderingStrategy != ColumnOrderingStrategyLegacy.INSTANCE ) {
final boolean shouldOrderTableColumns = forceOrdering || shouldOrderTableColumns();
for ( Namespace namespace : database.getNamespaces() ) {
for ( var namespace : database.getNamespaces() ) {
if ( shouldOrderTableColumns ) {
for ( Table table : namespace.getTables() ) {
for ( var table : namespace.getTables() ) {
handleTable( table, columnOrderingStrategy );
handlePrimaryKey( table, columnOrderingStrategy );
handleForeignKeys( table, columnOrderingStrategy );
}
}
for ( UserDefinedType userDefinedType : namespace.getUserDefinedTypes() ) {
for ( var userDefinedType : namespace.getUserDefinedTypes() ) {
handleUDT( userDefinedType, columnOrderingStrategy );
}
}
}
}

private void handleTable(Table table, ColumnOrderingStrategy columnOrderingStrategy) {
final List<Column> tableColumns = columnOrderingStrategy.orderTableColumns( table, this );
final var tableColumns = columnOrderingStrategy.orderTableColumns( table, this );
if ( tableColumns != null ) {
table.reorderColumns( tableColumns );
}
Expand All @@ -399,7 +386,7 @@ private void handleTable(Table table, ColumnOrderingStrategy columnOrderingStrat
private void handleUDT(UserDefinedType userDefinedType, ColumnOrderingStrategy columnOrderingStrategy) {
if ( userDefinedType instanceof UserDefinedObjectType objectType
&& objectType.getColumns().size() > 1 ) {
final List<Column> objectTypeColumns =
final var objectTypeColumns =
columnOrderingStrategy.orderUserDefinedTypeColumns( objectType, this );
if ( objectTypeColumns != null ) {
objectType.reorderColumns( objectTypeColumns );
Expand All @@ -408,16 +395,16 @@ private void handleUDT(UserDefinedType userDefinedType, ColumnOrderingStrategy c
}

private void handleForeignKeys(Table table, ColumnOrderingStrategy columnOrderingStrategy) {
for ( ForeignKey foreignKey : table.getForeignKeyCollection() ) {
final List<Column> columns = foreignKey.getColumns();
for ( var foreignKey : table.getForeignKeyCollection() ) {
final var columns = foreignKey.getColumns();
if ( columns.size() > 1 ) {
if ( foreignKey.getReferencedColumns().isEmpty() ) {
final PrimaryKey targetPrimaryKey =
final var targetPrimaryKey =
foreignKey.getReferencedTable().getPrimaryKey();
// Make sure we order the columns of the primary key first,
// so that foreign key ordering can rely on this
if ( targetPrimaryKey.getOriginalOrder() == null ) {
final List<Column> primaryKeyColumns =
final var primaryKeyColumns =
columnOrderingStrategy.orderConstraintColumns( targetPrimaryKey, this );
if ( primaryKeyColumns != null ) {
targetPrimaryKey.reorderColumns( primaryKeyColumns );
Expand All @@ -427,7 +414,7 @@ private void handleForeignKeys(Table table, ColumnOrderingStrategy columnOrderin
// Patch up the order of foreign keys based on new order of the target primary key
final int[] originalPrimaryKeyOrder = targetPrimaryKey.getOriginalOrder();
if ( originalPrimaryKeyOrder != null ) {
final ArrayList<Column> foreignKeyColumnsCopy = new ArrayList<>( columns );
final var foreignKeyColumnsCopy = new ArrayList<>( columns );
for ( int i = 0; i < foreignKeyColumnsCopy.size(); i++ ) {
columns.set( i, foreignKeyColumnsCopy.get( originalPrimaryKeyOrder[i] ) );
}
Expand All @@ -438,10 +425,11 @@ private void handleForeignKeys(Table table, ColumnOrderingStrategy columnOrderin
}

private void handlePrimaryKey(Table table, ColumnOrderingStrategy columnOrderingStrategy) {
final PrimaryKey primaryKey = table.getPrimaryKey();
if ( primaryKey != null && primaryKey.getColumns()
.size() > 1 && primaryKey.getOriginalOrder() == null ) {
final List<Column> primaryKeyColumns =
final var primaryKey = table.getPrimaryKey();
if ( primaryKey != null
&& primaryKey.getColumns().size() > 1
&& primaryKey.getOriginalOrder() == null ) {
final var primaryKeyColumns =
columnOrderingStrategy.orderConstraintColumns( primaryKey, this );
if ( primaryKeyColumns != null ) {
primaryKey.reorderColumns( primaryKeyColumns );
Expand All @@ -454,9 +442,9 @@ private boolean shouldOrderTableColumns() {
metadataBuildingOptions.getServiceRegistry()
.requireService( ConfigurationService.class )
.getSettings();
for ( ActionGrouping grouping : ActionGrouping.interpret( this, settings ) ) {
if ( isColumnOrderingRelevant( grouping.getScriptAction() )
|| isColumnOrderingRelevant( grouping.getDatabaseAction() ) ) {
for ( var grouping : ActionGrouping.interpret( this, settings ) ) {
if ( isColumnOrderingRelevant( grouping.scriptAction() )
|| isColumnOrderingRelevant( grouping.databaseAction() ) ) {
return true;
}
}
Expand All @@ -472,11 +460,11 @@ private static boolean isColumnOrderingRelevant(Action grouping) {

@Override
public void validate() throws MappingException {
for ( PersistentClass entityBinding : this.getEntityBindings() ) {
for ( var entityBinding : this.getEntityBindings() ) {
entityBinding.validate( this );
}

for ( Collection collectionBinding : this.getCollectionBindings() ) {
for ( var collectionBinding : this.getCollectionBindings() ) {
collectionBinding.validate( this );
}
}
Expand All @@ -491,15 +479,15 @@ public Set<MappedSuperclass> getMappedSuperclassMappingsCopy() {
@Override
public void initSessionFactory(SessionFactoryImplementor sessionFactory) {
// must not use BootstrapContext services here
final ServiceRegistryImplementor registry = sessionFactory.getServiceRegistry();
final var registry = sessionFactory.getServiceRegistry();
assert registry != null;
final ConfigurationService configurationService = registry.requireService( ConfigurationService.class );
final ClassLoaderService classLoaderService = registry.requireService( ClassLoaderService.class );
final EventListenerRegistry eventListenerRegistry = sessionFactory.getEventListenerRegistry();
final var configurationService = registry.requireService( ConfigurationService.class );
final var classLoaderService = registry.requireService( ClassLoaderService.class );
final var eventListenerRegistry = sessionFactory.getEventListenerRegistry();
configurationService.getSettings().forEach( (propertyName, value) -> {
if ( propertyName.startsWith( EVENT_LISTENER_PREFIX ) ) {
final String eventTypeName = propertyName.substring( EVENT_LISTENER_PREFIX.length() + 1 );
final EventType<?> eventType = EventType.resolveEventTypeByName( eventTypeName );
final var eventType = EventType.resolveEventTypeByName( eventTypeName );
final String listeners = (String) value;
appendListeners( eventListenerRegistry, classLoaderService, listeners, eventType );
}
Expand All @@ -511,7 +499,7 @@ private <T> void appendListeners(
ClassLoaderService classLoaderService,
String listeners,
EventType<T> eventType) {
final EventListenerGroup<T> eventListenerGroup = eventListenerRegistry.getEventListenerGroup( eventType );
final var eventListenerGroup = eventListenerRegistry.getEventListenerGroup( eventType );
for ( String listenerImpl : splitAtCommas( listeners ) ) {
@SuppressWarnings("unchecked")
T listener = (T) instantiate( listenerImpl, classLoaderService );
Expand Down Expand Up @@ -551,36 +539,36 @@ public DiscriminatorType<?> resolveEmbeddableDiscriminatorType(

@Override
public org.hibernate.type.Type getIdentifierType(String entityName) throws MappingException {
final PersistentClass pc = entityBindingMap.get( entityName );
if ( pc == null ) {
final var persistentClass = entityBindingMap.get( entityName );
if ( persistentClass == null ) {
throw new MappingException( "Persistent class not known: " + entityName );
}
return pc.getIdentifier().getType();
return persistentClass.getIdentifier().getType();
}

@Override
public String getIdentifierPropertyName(String entityName) throws MappingException {
final PersistentClass pc = entityBindingMap.get( entityName );
if ( pc == null ) {
final var persistentClass = entityBindingMap.get( entityName );
if ( persistentClass == null ) {
throw new MappingException( "Persistent class not known: " + entityName );
}
if ( !pc.hasIdentifierProperty() ) {
if ( !persistentClass.hasIdentifierProperty() ) {
return null;
}
return pc.getIdentifierProperty().getName();
return persistentClass.getIdentifierProperty().getName();
}

@Override
public org.hibernate.type.Type getReferencedPropertyType(String entityName, String propertyName) throws MappingException {
final PersistentClass pc = entityBindingMap.get( entityName );
if ( pc == null ) {
final var persistentClass = entityBindingMap.get( entityName );
if ( persistentClass == null ) {
throw new MappingException( "Persistent class not known: " + entityName );
}
final Property prop = pc.getReferencedProperty( propertyName );
if ( prop == null ) {
final var referencedProperty = persistentClass.getReferencedProperty( propertyName );
if ( referencedProperty == null ) {
throw new MappingException( "Property not known: " + entityName + '.' + propertyName );
}
return prop.getType();
return referencedProperty.getType();
}

//Specific for copies only:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,8 +263,7 @@ private static void applyManagedClasses(
DomainModelSource domainModelSource,
LinkedHashSet<ClassDetails> knownClasses) {
final var classDetailsRegistry = domainModelSource.getClassDetailsRegistry();
domainModelSource.getManagedClassNames().forEach( (className) -> {
knownClasses.add( classDetailsRegistry.resolveClassDetails( className ) );
} );
domainModelSource.getManagedClassNames()
.forEach( className -> knownClasses.add( classDetailsRegistry.resolveClassDetails( className ) ) );
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@ public HbmMetadataSourceProcessorImpl(
public HbmMetadataSourceProcessorImpl(
Collection<Binding<? extends JaxbBindableMappingDescriptor>> xmlBindings,
MetadataBuildingContext rootBuildingContext) {
final EntityHierarchyBuilder hierarchyBuilder = new EntityHierarchyBuilder();
final var hierarchyBuilder = new EntityHierarchyBuilder();

mappingDocuments = new ArrayList<>();

for ( var xmlBinding : xmlBindings ) {
if ( xmlBinding.getRoot() instanceof JaxbHbmHibernateMapping hibernateMapping ) {
final MappingDocument mappingDocument = new MappingDocument(
final var mappingDocument = new MappingDocument(
"orm",
hibernateMapping,
xmlBinding.getOrigin(),
Expand All @@ -64,56 +64,56 @@ public HbmMetadataSourceProcessorImpl(

@Override
public void prepare() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.prepare();
}
}

@Override
public void processTypeDefinitions() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.processTypeDefinitions();
}
}

@Override
public void processQueryRenames() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.processQueryRenames();
}
}

@Override
public void processNamedQueries() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.processNamedQueries();
}
}

@Override
public void processAuxiliaryDatabaseObjectDefinitions() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.processAuxiliaryDatabaseObjectDefinitions();
}
}

@Override
public void processFilterDefinitions() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.processFilterDefinitions();
}
}

@Override
public void processFetchProfiles() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.processFetchProfiles();
}
}

@Override
public void processIdentifierGenerators() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.processIdentifierGenerators();
}
}
Expand All @@ -124,7 +124,7 @@ public void prepareForEntityHierarchyProcessing() {

@Override
public void processEntityHierarchies(Set<String> processedEntityNames) {
hierarchy_loop : for ( EntityHierarchySourceImpl entityHierarchy : entityHierarchies ) {
hierarchy_loop : for ( var entityHierarchy : entityHierarchies ) {
for ( String entityName : entityHierarchy.getContainedEntityNames() ) {
if ( processedEntityNames.contains( entityName ) ) {
if ( LOG.isDebugEnabled() ) {
Expand All @@ -148,14 +148,14 @@ public void postProcessEntityHierarchies() {}

@Override
public void processResultSetMappings() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.processResultSetMappings();
}
}

@Override
public void finishUp() {
for ( MappingDocument mappingDocument : mappingDocuments ) {
for ( var mappingDocument : mappingDocuments ) {
mappingDocument.finishUp();
}
}
Expand Down
Loading
Loading