diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/produce/function/internal/PatternRenderer.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/produce/function/internal/PatternRenderer.java index bb14a6d012b7..8cad26a09d5d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/produce/function/internal/PatternRenderer.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/produce/function/internal/PatternRenderer.java @@ -235,9 +235,9 @@ else if ( i < paramIndexes.length ) { sqlAppender.appendSql( chunks[i] ); } if ( arg != null ) { - if ( caseWrapper && - !( arg instanceof Distinct ) && - !( arg instanceof Star ) ) { + if ( caseWrapper + && !( arg instanceof Distinct ) + && !( arg instanceof Star ) ) { translator.getCurrentClauseStack().push( Clause.WHERE ); sqlAppender.appendSql( "case when " ); filter.accept( translator ); diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java index 851757b6ee73..f5662c877990 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java @@ -346,8 +346,7 @@ public TableInformation getTable(Identifier catalog, Identifier schema, Identifi final Identifier currentSchema = getCurrentSchema(); final Identifier currentCatalog = getCurrentCatalog(); if ( currentCatalog != null || currentSchema != null ) { - final TableInformation tableInfo = - locateTableInNamespace( currentCatalog, currentSchema, tableName ); + final var tableInfo = locateTableInNamespace( currentCatalog, currentSchema, tableName ); if ( tableInfo != null ) { return tableInfo; } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java index 811c79f4e701..971466b11d8f 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java @@ -12,8 +12,6 @@ import org.hibernate.boot.Metadata; import org.hibernate.boot.model.naming.Identifier; -import org.hibernate.boot.model.relational.AuxiliaryDatabaseObject; -import org.hibernate.boot.model.relational.Database; import org.hibernate.boot.model.relational.Exportable; import org.hibernate.boot.model.relational.Namespace; import org.hibernate.boot.model.relational.Sequence; @@ -24,26 +22,18 @@ import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.engine.jdbc.internal.FormatStyle; import org.hibernate.engine.jdbc.internal.Formatter; -import org.hibernate.internal.util.StringHelper; -import org.hibernate.internal.util.collections.CollectionHelper; import org.hibernate.mapping.ForeignKey; import org.hibernate.mapping.Index; import org.hibernate.mapping.Table; -import org.hibernate.mapping.UniqueKey; -import org.hibernate.resource.transaction.spi.DdlTransactionIsolator; import org.hibernate.tool.schema.UniqueConstraintSchemaUpdateStrategy; -import org.hibernate.tool.schema.extract.spi.ColumnInformation; import org.hibernate.tool.schema.extract.spi.DatabaseInformation; import org.hibernate.tool.schema.extract.spi.IndexInformation; import org.hibernate.tool.schema.extract.spi.NameSpaceTablesInformation; -import org.hibernate.tool.schema.extract.spi.SequenceInformation; import org.hibernate.tool.schema.extract.spi.TableInformation; import org.hibernate.tool.schema.spi.GenerationTarget; -import org.hibernate.tool.schema.internal.exec.JdbcContext; import org.hibernate.tool.schema.spi.CommandAcceptanceException; import org.hibernate.tool.schema.spi.ContributableMatcher; import org.hibernate.tool.schema.spi.ExecutionOptions; -import org.hibernate.tool.schema.spi.Exporter; import org.hibernate.tool.schema.spi.SchemaFilter; import org.hibernate.tool.schema.spi.SchemaManagementException; import org.hibernate.tool.schema.spi.SchemaMigrator; @@ -54,8 +44,12 @@ import static org.hibernate.cfg.SchemaToolingSettings.UNIQUE_CONSTRAINT_SCHEMA_UPDATE_STRATEGY; import static org.hibernate.engine.config.spi.StandardConverters.STRING; import static org.hibernate.internal.util.StringHelper.isEmpty; +import static org.hibernate.internal.util.StringHelper.isNotEmpty; +import static org.hibernate.internal.util.collections.CollectionHelper.setOfSize; import static org.hibernate.tool.schema.UniqueConstraintSchemaUpdateStrategy.DROP_RECREATE_QUIETLY; import static org.hibernate.tool.schema.UniqueConstraintSchemaUpdateStrategy.SKIP; +import static org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation; +import static org.hibernate.tool.schema.internal.Helper.interpretFormattingEnabled; import static org.hibernate.tool.schema.internal.SchemaCreatorImpl.createUserDefinedTypes; import static org.hibernate.tool.schema.internal.SchemaDropperImpl.dropUserDefinedTypes; @@ -82,25 +76,20 @@ public void doMigration( ExecutionOptions options, ContributableMatcher contributableInclusionFilter, TargetDescriptor targetDescriptor) { - final SqlStringGenerationContext sqlGenerationContext = sqlGenerationContext( metadata, options ); + final var sqlGenerationContext = sqlGenerationContext( metadata, options ); if ( !targetDescriptor.getTargetTypes().isEmpty() ) { - final JdbcContext jdbcContext = tool.resolveJdbcContext( options.getConfigurationValues() ); - try ( DdlTransactionIsolator ddlTransactionIsolator = tool.getDdlTransactionIsolator( jdbcContext ) ) { - final DatabaseInformation databaseInformation = Helper.buildDatabaseInformation( - tool.getServiceRegistry(), - ddlTransactionIsolator, - sqlGenerationContext, - tool - ); - - final GenerationTarget[] targets = tool.buildGenerationTargets( + final var jdbcContext = tool.resolveJdbcContext( options.getConfigurationValues() ); + try ( var isolator = tool.getDdlTransactionIsolator( jdbcContext ) ) { + final var databaseInformation = + buildDatabaseInformation( isolator, sqlGenerationContext, tool ); + final var targets = tool.buildGenerationTargets( targetDescriptor, - ddlTransactionIsolator, + isolator, options.getConfigurationValues() ); try { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { target.prepare(); } @@ -116,7 +105,7 @@ public void doMigration( ); } finally { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { try { target.release(); } @@ -169,16 +158,16 @@ private void performMigration( Dialect dialect, SqlStringGenerationContext sqlGenerationContext, GenerationTarget... targets) { - final boolean format = Helper.interpretFormattingEnabled( options.getConfigurationValues() ); - final Formatter formatter = format ? FormatStyle.DDL.getFormatter() : FormatStyle.NONE.getFormatter(); + final boolean format = interpretFormattingEnabled( options.getConfigurationValues() ); + final var formatter = format ? FormatStyle.DDL.getFormatter() : FormatStyle.NONE.getFormatter(); - final Set exportIdentifiers = CollectionHelper.setOfSize( 50 ); + final Set exportIdentifiers = setOfSize( 50 ); - final Database database = metadata.getDatabase(); - final Exporter auxiliaryExporter = dialect.getAuxiliaryDatabaseObjectExporter(); + final var database = metadata.getDatabase(); + final var auxiliaryExporter = dialect.getAuxiliaryDatabaseObjectExporter(); // Drop all AuxiliaryDatabaseObjects - for ( AuxiliaryDatabaseObject auxiliaryDatabaseObject : database.getAuxiliaryDatabaseObjects() ) { + for ( var auxiliaryDatabaseObject : database.getAuxiliaryDatabaseObjects() ) { if ( auxiliaryDatabaseObject.appliesToDialect( dialect ) ) { applySqlStrings( true, @@ -194,7 +183,7 @@ private void performMigration( dropUserDefinedTypes( metadata, options, schemaFilter, dialect, formatter, sqlGenerationContext, targets ); // Create before-table AuxiliaryDatabaseObjects - for ( AuxiliaryDatabaseObject auxiliaryDatabaseObject : database.getAuxiliaryDatabaseObjects() ) { + for ( var auxiliaryDatabaseObject : database.getAuxiliaryDatabaseObjects() ) { if ( auxiliaryDatabaseObject.beforeTablesOnCreation() && auxiliaryDatabaseObject.appliesToDialect( dialect ) ) { applySqlStrings( @@ -222,8 +211,8 @@ private void performMigration( } final Map tablesInformation = new HashMap<>(); final Set exportedCatalogs = new HashSet<>(); - for ( Namespace namespace : database.getNamespaces() ) { - final NameSpaceTablesInformation nameSpaceTablesInformation = performTablesMigration( + for ( var namespace : database.getNamespaces() ) { + final var nameSpaceTablesInformation = performTablesMigration( metadata, existingDatabase, options, @@ -239,10 +228,10 @@ private void performMigration( ); tablesInformation.put( namespace, nameSpaceTablesInformation ); if ( schemaFilter.includeNamespace( namespace ) ) { - for ( Sequence sequence : namespace.getSequences() ) { + for ( var sequence : namespace.getSequences() ) { if ( contributableInclusionFilter.matches( sequence ) ) { checkExportIdentifier( sequence, exportIdentifiers); - final SequenceInformation sequenceInformation = existingDatabase.getSequenceInformation( sequence.getName() ); + final var sequenceInformation = existingDatabase.getSequenceInformation( sequence.getName() ); if ( sequenceInformation == null ) { applySequence( sequence, dialect, metadata, formatter, options, sqlGenerationContext, targets ); } @@ -252,12 +241,12 @@ private void performMigration( } //NOTE: Foreign keys must be created *after* all tables of all namespaces for cross-namespace fks. see HHH-10420 - for ( Namespace namespace : database.getNamespaces() ) { + for ( var namespace : database.getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { - final NameSpaceTablesInformation nameSpaceTablesInformation = tablesInformation.get( namespace ); - for ( Table table : namespace.getTables() ) { + final var nameSpaceTablesInformation = tablesInformation.get( namespace ); + for ( var table : namespace.getTables() ) { if ( schemaFilter.includeTable( table ) && contributableInclusionFilter.matches( table ) ) { - final TableInformation tableInformation = nameSpaceTablesInformation.getTableInformation( table ); + final var tableInformation = nameSpaceTablesInformation.getTableInformation( table ); if ( tableInformation == null || tableInformation.isPhysicalTable() ) { applyForeignKeys( table, tableInformation, dialect, metadata, formatter, options, sqlGenerationContext, targets ); @@ -268,8 +257,9 @@ private void performMigration( } // Create after-table AuxiliaryDatabaseObjects - for ( AuxiliaryDatabaseObject auxiliaryDatabaseObject : database.getAuxiliaryDatabaseObjects() ) { - if ( !auxiliaryDatabaseObject.beforeTablesOnCreation() && auxiliaryDatabaseObject.appliesToDialect( dialect ) ) { + for ( var auxiliaryDatabaseObject : database.getAuxiliaryDatabaseObjects() ) { + if ( !auxiliaryDatabaseObject.beforeTablesOnCreation() + && auxiliaryDatabaseObject.appliesToDialect( dialect ) ) { applySqlStrings( true, auxiliaryExporter.getSqlCreateStrings( auxiliaryDatabaseObject, metadata, sqlGenerationContext ), @@ -291,7 +281,8 @@ private static void applySequence( GenerationTarget... targets) { applySqlStrings( false, - dialect.getSequenceExporter().getSqlCreateStrings( sequence, metadata, sqlGenerationContext ), + dialect.getSequenceExporter() + .getSqlCreateStrings( sequence, metadata, sqlGenerationContext ), formatter, options, targets @@ -308,7 +299,8 @@ protected void createTable( GenerationTarget... targets) { applySqlStrings( false, - dialect.getTableExporter().getSqlCreateStrings( table, metadata, sqlGenerationContext ), + dialect.getTableExporter() + .getSqlCreateStrings( table, metadata, sqlGenerationContext ), formatter, options, targets @@ -343,13 +335,13 @@ protected void applyIndexes( ExecutionOptions options, SqlStringGenerationContext sqlGenerationContext, GenerationTarget... targets) { - final Exporter exporter = dialect.getIndexExporter(); - for ( Index index : table.getIndexes().values() ) { + final var exporter = dialect.getIndexExporter(); + for ( var index : table.getIndexes().values() ) { if ( !isEmpty( index.getName() ) ) { - IndexInformation existingIndex = null; - if ( tableInformation != null ) { - existingIndex = findMatchingIndex( index, tableInformation ); - } + final var existingIndex = + tableInformation != null + ? findMatchingIndex( index, tableInformation ) + : null; if ( existingIndex == null ) { applySqlStrings( false, @@ -381,15 +373,15 @@ protected void applyUniqueKeys( } if ( uniqueConstraintStrategy != SKIP ) { - final Exporter exporter = dialect.getUniqueKeyExporter(); - for ( UniqueKey uniqueKey : table.getUniqueKeys().values() ) { + final var exporter = dialect.getUniqueKeyExporter(); + for ( var uniqueKey : table.getUniqueKeys().values() ) { // Skip if index already exists. Most of the time, this // won't work since most Dialects use Constraints. However, // keep it for the few that do use Indexes. - IndexInformation indexInfo = null; - if ( tableInfo != null && StringHelper.isNotEmpty( uniqueKey.getName() ) ) { - indexInfo = tableInfo.getIndex( Identifier.toIdentifier( uniqueKey.getName() ) ); - } + final var indexInfo = + tableInfo != null && isNotEmpty( uniqueKey.getName() ) + ? tableInfo.getIndex( Identifier.toIdentifier( uniqueKey.getName() ) ) + : null; if ( indexInfo == null ) { if ( uniqueConstraintStrategy == DROP_RECREATE_QUIETLY ) { applySqlStrings( @@ -430,8 +422,8 @@ protected void applyForeignKeys( SqlStringGenerationContext sqlGenerationContext, GenerationTarget... targets) { if ( dialect.hasAlterTable() ) { - final Exporter exporter = dialect.getForeignKeyExporter(); - for ( ForeignKey foreignKey : table.getForeignKeyCollection() ) { + final var exporter = dialect.getForeignKeyExporter(); + for ( var foreignKey : table.getForeignKeyCollection() ) { if ( foreignKey.isPhysicalConstraint() && foreignKey.isCreationEnabled() && ( tableInformation == null || !checkForExistingForeignKey( foreignKey, tableInformation ) ) ) { @@ -478,8 +470,8 @@ boolean equivalentForeignKeyExistsInDatabase(TableInformation tableInformation, return StreamSupport.stream( tableInformation.getForeignKeys().spliterator(), false ) .flatMap( foreignKeyInformation -> StreamSupport.stream( foreignKeyInformation.getColumnReferenceMappings().spliterator(), false ) ) .anyMatch( columnReferenceMapping -> { - final ColumnInformation referencingColumnMetadata = columnReferenceMapping.getReferencingColumnMetadata(); - final ColumnInformation referencedColumnMetadata = columnReferenceMapping.getReferencedColumnMetadata(); + final var referencingColumnMetadata = columnReferenceMapping.getReferencingColumnMetadata(); + final var referencedColumnMetadata = columnReferenceMapping.getReferencedColumnMetadata(); final String existingReferencingColumn = referencingColumnMetadata.getColumnIdentifier().getText(); final String existingReferencedTable = referencedColumnMetadata.getContainingTableInformation().getName().getTableName().getCanonicalName(); @@ -564,7 +556,7 @@ private static void applySqlString( GenerationTarget... targets) { if ( !isEmpty( sql ) ) { final String formattedSql = formatter.format( sql ); - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { try { target.accept( formattedSql ); } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaPopulator.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaPopulator.java index cc12fe4897ff..b368b060dbe9 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaPopulator.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaPopulator.java @@ -18,7 +18,6 @@ import org.hibernate.tool.schema.spi.SqlScriptCommandExtractor; import java.net.URL; -import java.util.Map; import static org.hibernate.cfg.SchemaToolingSettings.HBM2DDL_CHARSET_NAME; import static org.hibernate.cfg.SchemaToolingSettings.HBM2DDL_IMPORT_FILES; @@ -45,9 +44,7 @@ void applyImportSources( boolean format, Dialect dialect, GenerationTarget... targets) { - - final Formatter formatter = getImportScriptFormatter(format); - + final var formatter = getImportScriptFormatter(format); boolean hasDefaultImportFileScriptBeenExecuted = applyImportScript( options, commandExtractor, @@ -103,7 +100,7 @@ private boolean applyImportScript( GenerationTarget[] targets) { final Object importScriptSetting = getImportScriptSetting( options ); if ( importScriptSetting != null ) { - final ScriptSourceInput importScriptInput = + final var importScriptInput = interpretScriptSourceSetting( importScriptSetting, getClassLoaderService(), getCharsetName( options ) ); applyScript( options, @@ -124,8 +121,10 @@ private boolean containsDefaultImportFile(ScriptSourceInput importScriptInput,Ex if ( skipDefaultFileImport( options ) ) { return false; } - final URL defaultImportFileUrl = getClassLoaderService().locateResource( DEFAULT_IMPORT_FILE ); - return defaultImportFileUrl != null && importScriptInput.containsScript( defaultImportFileUrl ); + else { + final URL defaultImportFileUrl = getClassLoaderService().locateResource( DEFAULT_IMPORT_FILE ); + return defaultImportFileUrl != null && importScriptInput.containsScript( defaultImportFileUrl ); + } } /** @@ -143,15 +142,14 @@ private void applyImportFiles( StringHelper.split( ",", getString( HBM2DDL_IMPORT_FILES, options.getConfigurationValues(), defaultImportFile ) ); final String charsetName = getCharsetName( options ); - final ClassLoaderService classLoaderService = getClassLoaderService(); + final var classLoaderService = getClassLoaderService(); for ( String currentFile : importFiles ) { - final String resourceName = currentFile.trim(); - if ( !resourceName.isEmpty() ) { //skip empty resource names + if ( !currentFile.isBlank() ) { //skip empty resource names applyScript( options, commandExtractor, dialect, - interpretLegacyImportScriptSetting( resourceName, classLoaderService, charsetName ), + interpretLegacyImportScriptSetting( currentFile.trim(), classLoaderService, charsetName ), formatter, targets ); @@ -187,7 +185,7 @@ private static String getCharsetName(ExecutionOptions options) { * @return a {@link java.io.Reader} or a string URL */ private static Object getImportScriptSetting(ExecutionOptions options) { - final Map configuration = options.getConfigurationValues(); + final var configuration = options.getConfigurationValues(); final Object importScriptSetting = configuration.get( HBM2DDL_LOAD_SCRIPT_SOURCE ); return importScriptSetting == null ? configuration.get( JAKARTA_HBM2DDL_LOAD_SCRIPT_SOURCE ) diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaValidator.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaValidator.java index 47e6a3acf2e5..2df34e1b52f9 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaValidator.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaValidator.java @@ -9,18 +9,15 @@ import org.hibernate.boot.Metadata; import org.hibernate.boot.model.relational.Namespace; import org.hibernate.boot.model.relational.Sequence; -import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.boot.model.relational.internal.SqlStringGenerationContextImpl; import org.hibernate.dialect.Dialect; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.mapping.Column; import org.hibernate.mapping.Table; -import org.hibernate.resource.transaction.spi.DdlTransactionIsolator; import org.hibernate.tool.schema.extract.spi.ColumnInformation; import org.hibernate.tool.schema.extract.spi.DatabaseInformation; import org.hibernate.tool.schema.extract.spi.SequenceInformation; import org.hibernate.tool.schema.extract.spi.TableInformation; -import org.hibernate.tool.schema.internal.exec.JdbcContext; import org.hibernate.tool.schema.spi.ContributableMatcher; import org.hibernate.tool.schema.spi.ExecutionOptions; import org.hibernate.tool.schema.spi.SchemaFilter; @@ -32,6 +29,7 @@ import static org.hibernate.boot.model.naming.Identifier.toIdentifier; import static org.hibernate.tool.schema.internal.ColumnDefinitions.hasMatchingType; +import static org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation; /** * Base implementation of {@link SchemaValidator}. @@ -56,21 +54,16 @@ public void doValidation( Metadata metadata, ExecutionOptions options, ContributableMatcher contributableInclusionFilter) { - SqlStringGenerationContext context = SqlStringGenerationContextImpl.fromConfigurationMap( - tool.getServiceRegistry().requireService( JdbcEnvironment.class ), - metadata.getDatabase(), - options.getConfigurationValues() - ); - final JdbcContext jdbcContext = tool.resolveJdbcContext( options.getConfigurationValues() ); - - try ( DdlTransactionIsolator isolator = tool.getDdlTransactionIsolator( jdbcContext ) ) { - final DatabaseInformation databaseInformation = Helper.buildDatabaseInformation( - tool.getServiceRegistry(), - isolator, - context, - tool - ); - + final var context = + SqlStringGenerationContextImpl.fromConfigurationMap( + tool.getServiceRegistry().requireService( JdbcEnvironment.class ), + metadata.getDatabase(), + options.getConfigurationValues() + ); + final var jdbcContext = tool.resolveJdbcContext( options.getConfigurationValues() ); + try ( var isolator = tool.getDdlTransactionIsolator( jdbcContext ) ) { + final var databaseInformation = + buildDatabaseInformation( isolator, context, tool ); try { performValidation( metadata, databaseInformation, options, contributableInclusionFilter, jdbcContext.getDialect() ); } @@ -91,25 +84,20 @@ public void performValidation( ExecutionOptions options, ContributableMatcher contributableInclusionFilter, Dialect dialect) { - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + final var namespaces = metadata.getDatabase().getNamespaces(); + for ( var namespace : namespaces ) { if ( schemaFilter.includeNamespace( namespace ) ) { validateTables( metadata, databaseInformation, options, contributableInclusionFilter, dialect, namespace ); } } - - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + for ( var namespace : namespaces ) { if ( schemaFilter.includeNamespace( namespace ) ) { - for ( Sequence sequence : namespace.getSequences() ) { - if ( !schemaFilter.includeSequence( sequence ) ) { - continue; + for ( var sequence : namespace.getSequences() ) { + if ( schemaFilter.includeSequence( sequence ) + && contributableInclusionFilter.matches( sequence ) ) { + validateSequence( sequence, + databaseInformation.getSequenceInformation( sequence.getName() ) ); } - - if ( ! contributableInclusionFilter.matches( sequence ) ) { - continue; - } - - final SequenceInformation sequenceInformation = databaseInformation.getSequenceInformation( sequence.getName() ); - validateSequence( sequence, sequenceInformation ); } } } @@ -131,26 +119,26 @@ protected void validateTable( if ( tableInformation == null ) { throw new SchemaManagementException( String.format( - "Schema-validation: missing table [%s]", + "Schema validation: missing table [%s]", table.getQualifiedTableName().toString() ) ); } - for ( Column column : table.getColumns() ) { - final ColumnInformation existingColumn = + for ( var column : table.getColumns() ) { + final var existingColumn = //QUESTION: should this use metadata.getDatabase().toIdentifier( column.getQuotedName() ) tableInformation.getColumn( toIdentifier( column.getQuotedName() ) ); if ( existingColumn == null ) { throw new SchemaManagementException( String.format( - "Schema-validation: missing column [%s] in table [%s]", + "Schema validation: missing column [%s] in table [%s]", column.getName(), table.getQualifiedTableName() ) ); } - validateColumnType( table, column, existingColumn, metadata, options, dialect ); + validateColumnType( table, column, existingColumn, metadata, dialect ); } } @@ -159,12 +147,11 @@ protected void validateColumnType( Column column, ColumnInformation columnInformation, Metadata metadata, - ExecutionOptions options, Dialect dialect) { if ( !hasMatchingType( column, columnInformation, metadata, dialect ) ) { throw new SchemaManagementException( String.format( - "Schema-validation: wrong column type encountered in column [%s] in " + + "Schema validation: wrong column type encountered in column [%s] in " + "table [%s]; found [%s (Types#%s)], but expecting [%s (Types#%s)]", column.getName(), table.getQualifiedTableName(), @@ -180,17 +167,18 @@ protected void validateColumnType( protected void validateSequence(Sequence sequence, SequenceInformation sequenceInformation) { if ( sequenceInformation == null ) { throw new SchemaManagementException( - String.format( "Schema-validation: missing sequence [%s]", sequence.getName() ) + String.format( "Schema validation: missing sequence [%s]", sequence.getName() ) ); } - if ( sequenceInformation.getIncrementValue() != null && sequenceInformation.getIncrementValue().intValue() > 0 - && sequence.getIncrementSize() != sequenceInformation.getIncrementValue().intValue() ) { + final Number incrementValue = sequenceInformation.getIncrementValue(); + if ( incrementValue != null && incrementValue.intValue() > 0 + && sequence.getIncrementSize() != incrementValue.intValue() ) { throw new SchemaManagementException( String.format( - "Schema-validation: sequence [%s] defined inconsistent increment-size; found [%s] but expecting [%s]", + "Schema validation: sequence [%s] defined inconsistent increment-size; found [%s] but expecting [%s]", sequence.getName(), - sequenceInformation.getIncrementValue(), + incrementValue, sequence.getIncrementSize() ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/ColumnDefinitions.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/ColumnDefinitions.java index c68bb8b359d7..2927c97446fb 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/ColumnDefinitions.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/ColumnDefinitions.java @@ -9,10 +9,8 @@ import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.dialect.Dialect; import org.hibernate.engine.jdbc.Size; -import org.hibernate.mapping.CheckConstraint; import org.hibernate.mapping.Column; import org.hibernate.mapping.Table; -import org.hibernate.mapping.UniqueKey; import org.hibernate.tool.schema.extract.spi.ColumnInformation; import org.hibernate.type.descriptor.jdbc.JdbcType; @@ -20,10 +18,9 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; -import java.util.Comparator; -import java.util.List; import java.util.Locale; +import static java.util.Comparator.comparing; import static org.hibernate.internal.util.StringHelper.isNotEmpty; import static org.hibernate.type.SqlTypes.isNumericOrDecimal; import static org.hibernate.type.SqlTypes.isStringType; @@ -138,15 +135,15 @@ private static void appendConstraints( // (we don't have access to the ImplicitNamingStrategy here) ? generateName( "UK_", table, column ) : uniqueKeyName; - final UniqueKey uniqueKey = table.getOrCreateUniqueKey( keyName ); + final var uniqueKey = table.getOrCreateUniqueKey( keyName ); uniqueKey.addColumn( column ); definition.append( dialect.getUniqueDelegate().getColumnDefinitionUniquenessFragment( column, context ) ); } if ( dialect.supportsColumnCheck() ) { - final List checkConstraints = column.getCheckConstraints(); + final var checkConstraints = column.getCheckConstraints(); boolean hasAnonymousConstraints = false; - for ( CheckConstraint constraint : checkConstraints ) { + for ( var constraint : checkConstraints ) { if ( constraint.isAnonymous() ) { if ( !hasAnonymousConstraints ) { definition.append(" check ("); @@ -164,7 +161,7 @@ private static void appendConstraints( if ( !dialect.supportsTableCheck() ) { // When table check constraints are not supported, try to render all named constraints - for ( CheckConstraint constraint : checkConstraints ) { + for ( var constraint : checkConstraints ) { if ( constraint.isNamed() ) { definition.append( constraint.constraintString( dialect ) ); } @@ -175,7 +172,7 @@ else if ( !hasAnonymousConstraints && dialect.supportsNamedColumnCheck() ) { // constraints and named column check constraint are supported, because some database don't like // multiple check clauses. // Note that the TableExporter will take care of named constraints then - for ( CheckConstraint constraint : checkConstraints ) { + for ( var constraint : checkConstraints ) { if ( constraint.isNamed() ) { definition.append( constraint.constraintString( dialect ) ); break; @@ -202,8 +199,9 @@ private static void appendColumnDefinition( if ( dialect.getIdentityColumnSupport().hasDataTypeInIdentityColumn() ) { definition.append( ' ' ).append( column.getSqlType( metadata ) ); } - final String identityColumnString = dialect.getIdentityColumnSupport() - .getIdentityColumnString( column.getSqlTypeCode( metadata ) ); + final String identityColumnString = + dialect.getIdentityColumnSupport() + .getIdentityColumnString( column.getSqlTypeCode( metadata ) ); // the custom columnDefinition might have already included the // identity column generation clause, so try not to add it twice if ( !definition.toString().toLowerCase(Locale.ROOT).contains( identityColumnString ) ) { @@ -287,18 +285,18 @@ private static String stripArgs(String typeExpression) { private static String generateName(String prefix, Table table, Column... columns) { // Use a concatenation that guarantees uniqueness, even if identical names // exist between all table and column identifiers. - final StringBuilder sb = new StringBuilder( "table`" + table.getName() + "`" ); + final var builder = new StringBuilder( "table`" + table.getName() + "`" ); // Ensure a consistent ordering of columns, regardless of the order // they were bound. // Clone the list, as sometimes a set of order-dependent Column // bindings are given. - final Column[] alphabeticalColumns = columns.clone(); - Arrays.sort( alphabeticalColumns, Comparator.comparing( Column::getName ) ); - for ( Column column : alphabeticalColumns ) { + final var alphabeticalColumns = columns.clone(); + Arrays.sort( alphabeticalColumns, comparing( Column::getName ) ); + for ( var column : alphabeticalColumns ) { final String columnName = column == null ? "" : column.getName(); - sb.append( "column`" ).append( columnName ).append( "`" ); + builder.append( "column`" ).append( columnName ).append( "`" ); } - return prefix + hashedName( sb.toString() ); + return prefix + hashedName( builder.toString() ); } /** @@ -315,11 +313,11 @@ private static String generateName(String prefix, Table table, Column... columns @Deprecated(since = "6.5", forRemoval = true) private static String hashedName(String name) { try { - final MessageDigest md = MessageDigest.getInstance( "MD5" ); - md.reset(); - md.update( name.getBytes() ); - final byte[] digest = md.digest(); - final BigInteger bigInt = new BigInteger( 1, digest ); + final var messageDigest = MessageDigest.getInstance( "MD5" ); + messageDigest.reset(); + messageDigest.update( name.getBytes() ); + final byte[] digest = messageDigest.digest(); + final var bigInt = new BigInteger( 1, digest ); // By converting to base 35 (full alphanumeric), we guarantee // that the length of the name will always be smaller than the 30 // character identifier restriction enforced by a few dialects. diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/DdlTransactionIsolatorProvidedConnectionImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/DdlTransactionIsolatorProvidedConnectionImpl.java index 9fd56724a08a..e60717f7e5df 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/DdlTransactionIsolatorProvidedConnectionImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/DdlTransactionIsolatorProvidedConnectionImpl.java @@ -7,7 +7,6 @@ import java.sql.Connection; import java.sql.SQLException; -import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess; import org.hibernate.resource.transaction.spi.DdlTransactionIsolator; import org.hibernate.tool.schema.internal.exec.JdbcConnectionAccessProvidedConnectionImpl; import org.hibernate.tool.schema.internal.exec.JdbcContext; @@ -56,7 +55,7 @@ public Connection getIsolatedConnection(boolean autocommit) { @Override public void release() { - JdbcConnectionAccess connectionAccess = jdbcContext.getJdbcConnectionAccess(); + final var connectionAccess = jdbcContext.getJdbcConnectionAccess(); if( !( connectionAccess instanceof JdbcConnectionAccessProvidedConnectionImpl ) ) { throw new IllegalStateException( "DdlTransactionIsolatorProvidedConnectionImpl should always use a JdbcConnectionAccessProvidedConnectionImpl" diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GeneratorSynchronizerImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GeneratorSynchronizerImpl.java index ce1c68fac3a1..a414b559446a 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GeneratorSynchronizerImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GeneratorSynchronizerImpl.java @@ -97,12 +97,12 @@ private void syncFromMetadata( JdbcContext jdbcContext, Formatter formatter, GenerationTarget... targets) { - try ( var ddlTransactionIsolator = tool.getDdlTransactionIsolator( jdbcContext ) ) { + try ( var isolator = tool.getDdlTransactionIsolator( jdbcContext ) ) { final var context = createSqlStringGenerationContext( options, metadata ); for ( var namespace : metadata.getDatabase().getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { for ( var table : namespace.getTables() ) { - for ( var command : table.getResyncCommands( context, ddlTransactionIsolator ) ) { + for ( var command : table.getResyncCommands( context, isolator ) ) { applySqlStrings( command.initCommands(), formatter, options, targets ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GroupedSchemaMigratorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GroupedSchemaMigratorImpl.java index b2c50d97ff97..fe3c884cc3d8 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GroupedSchemaMigratorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GroupedSchemaMigratorImpl.java @@ -12,10 +12,8 @@ import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.dialect.Dialect; import org.hibernate.engine.jdbc.internal.Formatter; -import org.hibernate.mapping.Table; import org.hibernate.tool.schema.extract.spi.DatabaseInformation; import org.hibernate.tool.schema.extract.spi.NameSpaceTablesInformation; -import org.hibernate.tool.schema.extract.spi.TableInformation; import org.hibernate.tool.schema.spi.GenerationTarget; import org.hibernate.tool.schema.spi.ContributableMatcher; import org.hibernate.tool.schema.spi.ExecutionOptions; @@ -50,7 +48,7 @@ protected NameSpaceTablesInformation performTablesMigration( Namespace namespace, SqlStringGenerationContext context, GenerationTarget[] targets) { - final NameSpaceTablesInformation tablesInformation = + final var tablesInformation = new NameSpaceTablesInformation( metadata.getDatabase().getJdbcEnvironment().getIdentifierHelper() ); if ( schemaFilter.includeNamespace( namespace ) ) { @@ -67,13 +65,13 @@ protected NameSpaceTablesInformation performTablesMigration( targets ); - final NameSpaceTablesInformation tables = existingDatabase.getTablesInformation( namespace ); - for ( Table table : namespace.getTables() ) { + final var tables = existingDatabase.getTablesInformation( namespace ); + for ( var table : namespace.getTables() ) { if ( schemaFilter.includeTable( table ) && table.isPhysicalTable() && contributableInclusionFilter.matches( table ) ) { checkExportIdentifier( table, exportIdentifiers ); - final TableInformation tableInformation = tables.getTableInformation( table ); + final var tableInformation = tables.getTableInformation( table ); if ( tableInformation == null ) { createTable( table, dialect, metadata, formatter, options, context, targets ); } @@ -85,11 +83,11 @@ else if ( tableInformation.isPhysicalTable() ) { } } - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( schemaFilter.includeTable( table ) && table.isPhysicalTable() && contributableInclusionFilter.matches( table ) ) { - final TableInformation tableInformation = tablesInformation.getTableInformation( table ); + final var tableInformation = tablesInformation.getTableInformation( table ); if ( tableInformation == null || tableInformation.isPhysicalTable() ) { applyIndexes( table, tableInformation, dialect, metadata, formatter, options, context, targets ); diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GroupedSchemaValidatorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GroupedSchemaValidatorImpl.java index 67599ac2bb1c..42ba38e851ae 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GroupedSchemaValidatorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/GroupedSchemaValidatorImpl.java @@ -7,9 +7,7 @@ import org.hibernate.boot.Metadata; import org.hibernate.boot.model.relational.Namespace; import org.hibernate.dialect.Dialect; -import org.hibernate.mapping.Table; import org.hibernate.tool.schema.extract.spi.DatabaseInformation; -import org.hibernate.tool.schema.extract.spi.NameSpaceTablesInformation; import org.hibernate.tool.schema.spi.ContributableMatcher; import org.hibernate.tool.schema.spi.ExecutionOptions; import org.hibernate.tool.schema.spi.SchemaFilter; @@ -36,8 +34,8 @@ protected void validateTables( ContributableMatcher contributableInclusionFilter, Dialect dialect, Namespace namespace) { - final NameSpaceTablesInformation tables = databaseInformation.getTablesInformation( namespace ); - for ( Table table : namespace.getTables() ) { + final var tables = databaseInformation.getTablesInformation( namespace ); + for ( var table : namespace.getTables() ) { if ( schemaFilter.includeTable( table ) && table.isPhysicalTable() && contributableInclusionFilter.matches( table ) ) { diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/Helper.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/Helper.java index e9788ca69447..834584197fce 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/Helper.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/Helper.java @@ -9,7 +9,6 @@ import java.io.Writer; import java.net.URL; import java.sql.SQLException; -import java.util.List; import java.util.Map; import org.hibernate.boot.Metadata; @@ -20,7 +19,6 @@ import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.engine.jdbc.internal.Formatter; import org.hibernate.resource.transaction.spi.DdlTransactionIsolator; -import org.hibernate.service.ServiceRegistry; import org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl; import org.hibernate.tool.schema.extract.spi.DatabaseInformation; import org.hibernate.tool.schema.internal.exec.AbstractScriptSourceInput; @@ -165,11 +163,11 @@ public static boolean interpretFormattingEnabled(Map configuratio } public static DatabaseInformation buildDatabaseInformation( - ServiceRegistry serviceRegistry, DdlTransactionIsolator ddlTransactionIsolator, SqlStringGenerationContext context, SchemaManagementTool tool) { - final JdbcEnvironment jdbcEnvironment = serviceRegistry.requireService( JdbcEnvironment.class ); + final var serviceRegistry = ddlTransactionIsolator.getJdbcContext().getServiceRegistry(); + final var jdbcEnvironment = serviceRegistry.requireService( JdbcEnvironment.class ); try { return new DatabaseInformationImpl( serviceRegistry, @@ -231,9 +229,8 @@ public static void applyScript( ScriptSourceInput scriptInput, Formatter formatter, GenerationTarget[] targets) { - final List commands = scriptInput.extract( - reader -> commandExtractor.extractCommands( reader, dialect ) - ); + final var commands = + scriptInput.extract( reader -> commandExtractor.extractCommands( reader, dialect ) ); for ( var target : targets ) { target.beforeScript( scriptInput ); } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/HibernateSchemaManagementTool.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/HibernateSchemaManagementTool.java index 683440b2d0b0..3ac601d90353 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/HibernateSchemaManagementTool.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/HibernateSchemaManagementTool.java @@ -34,7 +34,6 @@ import org.hibernate.tool.schema.spi.GenerationTarget; import org.hibernate.tool.schema.spi.SchemaCreator; import org.hibernate.tool.schema.spi.SchemaDropper; -import org.hibernate.tool.schema.spi.SchemaFilter; import org.hibernate.tool.schema.spi.SchemaFilterProvider; import org.hibernate.tool.schema.spi.SchemaManagementException; import org.hibernate.tool.schema.spi.SchemaManagementTool; @@ -114,16 +113,16 @@ public GeneratorSynchronizer getSequenceSynchronizer(Map options @Override public SchemaMigrator getSchemaMigrator(Map options) { - final SchemaFilter migrateFilter = getSchemaFilterProvider( options ).getMigrateFilter(); - return determineJdbcMetadaAccessStrategy( options ) == JdbcMetadataAccessStrategy.GROUPED + final var migrateFilter = getSchemaFilterProvider( options ).getMigrateFilter(); + return JdbcMetadataAccessStrategy.interpretSetting( options ) == JdbcMetadataAccessStrategy.GROUPED ? new GroupedSchemaMigratorImpl( this, migrateFilter ) : new IndividuallySchemaMigratorImpl( this, migrateFilter ); } @Override public SchemaValidator getSchemaValidator(Map options) { - final SchemaFilter validateFilter = getSchemaFilterProvider( options ).getValidateFilter(); - return determineJdbcMetadaAccessStrategy( options ) == JdbcMetadataAccessStrategy.GROUPED + final var validateFilter = getSchemaFilterProvider( options ).getValidateFilter(); + return JdbcMetadataAccessStrategy.interpretSetting( options ) == JdbcMetadataAccessStrategy.GROUPED ? new GroupedSchemaValidatorImpl( this, validateFilter ) : new IndividuallySchemaValidatorImpl( this, validateFilter ); } @@ -135,10 +134,6 @@ private SchemaFilterProvider getSchemaFilterProvider(Map options) DefaultSchemaFilterProvider.INSTANCE ); } - private JdbcMetadataAccessStrategy determineJdbcMetadaAccessStrategy(Map options) { - return JdbcMetadataAccessStrategy.interpretSetting( options ); - } - @Override public void setCustomDatabaseGenerationTarget(GenerationTarget generationTarget) { this.customTarget = generationTarget; @@ -161,7 +156,7 @@ public GenerationTarget[] buildGenerationTargets( boolean needsAutoCommit) { final String scriptDelimiter = getString( HBM2DDL_DELIMITER, options, ";" ); - final GenerationTarget[] targets = new GenerationTarget[ targetDescriptor.getTargetTypes().size() ]; + final var targets = new GenerationTarget[ targetDescriptor.getTargetTypes().size() ]; int index = 0; @@ -206,7 +201,7 @@ GenerationTarget[] buildGenerationTargets( Map options) { final String scriptDelimiter = getString( HBM2DDL_DELIMITER, options, ";" ); - final GenerationTarget[] targets = new GenerationTarget[ targetDescriptor.getTargetTypes().size() ]; + final var targets = new GenerationTarget[ targetDescriptor.getTargetTypes().size() ]; int index = 0; @@ -245,7 +240,7 @@ public JdbcContext resolveJdbcContext(Map configurationValues) { final var jdbcContextBuilder = new JdbcContextBuilder( serviceRegistry ); // see if a specific connection has been provided - final Connection providedConnection = (Connection) coalesceSuppliedValues( + final var providedConnection = (Connection) coalesceSuppliedValues( () -> configurationValues.get( JAKARTA_HBM2DDL_CONNECTION ), () -> { final Object value = configurationValues.get( HBM2DDL_CONNECTION ); diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/IndividuallySchemaMigratorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/IndividuallySchemaMigratorImpl.java index a195f38b14e8..b6550f330535 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/IndividuallySchemaMigratorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/IndividuallySchemaMigratorImpl.java @@ -12,10 +12,8 @@ import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.dialect.Dialect; import org.hibernate.engine.jdbc.internal.Formatter; -import org.hibernate.mapping.Table; import org.hibernate.tool.schema.extract.spi.DatabaseInformation; import org.hibernate.tool.schema.extract.spi.NameSpaceTablesInformation; -import org.hibernate.tool.schema.extract.spi.TableInformation; import org.hibernate.tool.schema.spi.GenerationTarget; import org.hibernate.tool.schema.spi.ContributableMatcher; import org.hibernate.tool.schema.spi.ExecutionOptions; @@ -50,7 +48,7 @@ protected NameSpaceTablesInformation performTablesMigration( Namespace namespace, SqlStringGenerationContext context, GenerationTarget[] targets) { - final NameSpaceTablesInformation tablesInformation = + final var tablesInformation = new NameSpaceTablesInformation( metadata.getDatabase().getJdbcEnvironment().getIdentifierHelper() ); if ( schemaFilter.includeNamespace( namespace ) ) { @@ -66,12 +64,12 @@ protected NameSpaceTablesInformation performTablesMigration( context, targets ); - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( schemaFilter.includeTable( table ) && table.isPhysicalTable() && contributableInclusionFilter.matches( table ) ) { checkExportIdentifier( table, exportIdentifiers ); - final TableInformation tableInformation = existingDatabase.getTableInformation( table.getQualifiedTableName() ); + final var tableInformation = existingDatabase.getTableInformation( table.getQualifiedTableName() ); if ( tableInformation == null ) { createTable( table, dialect, metadata, formatter, options, context, targets ); } @@ -83,11 +81,11 @@ else if ( tableInformation.isPhysicalTable() ) { } } - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( schemaFilter.includeTable( table ) && table.isPhysicalTable() && contributableInclusionFilter.matches( table ) ) { - final TableInformation tableInformation = tablesInformation.getTableInformation( table ); + final var tableInformation = tablesInformation.getTableInformation( table ); if ( tableInformation == null || tableInformation.isPhysicalTable() ) { applyIndexes( table, tableInformation, dialect, metadata, formatter, options, context, targets ); diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/IndividuallySchemaValidatorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/IndividuallySchemaValidatorImpl.java index d1c106568b78..0b29003ee259 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/IndividuallySchemaValidatorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/IndividuallySchemaValidatorImpl.java @@ -7,9 +7,7 @@ import org.hibernate.boot.Metadata; import org.hibernate.boot.model.relational.Namespace; import org.hibernate.dialect.Dialect; -import org.hibernate.mapping.Table; import org.hibernate.tool.schema.extract.spi.DatabaseInformation; -import org.hibernate.tool.schema.extract.spi.TableInformation; import org.hibernate.tool.schema.spi.ContributableMatcher; import org.hibernate.tool.schema.spi.ExecutionOptions; import org.hibernate.tool.schema.spi.SchemaFilter; @@ -36,13 +34,12 @@ protected void validateTables( ContributableMatcher contributableInclusionFilter, Dialect dialect, Namespace namespace) { - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( schemaFilter.includeTable( table ) && table.isPhysicalTable() && contributableInclusionFilter.matches( table ) ) { - final TableInformation tableInformation = databaseInformation.getTableInformation( - table.getQualifiedTableName() - ); + final var tableInformation = + databaseInformation.getTableInformation( table.getQualifiedTableName() ); validateTable( table, tableInformation, metadata, options, dialect ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java index bed0045b9031..b7000a3a6bf0 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java @@ -14,11 +14,8 @@ import org.hibernate.Internal; import org.hibernate.boot.Metadata; import org.hibernate.boot.model.naming.Identifier; -import org.hibernate.boot.model.relational.AuxiliaryDatabaseObject; import org.hibernate.boot.model.relational.Exportable; -import org.hibernate.boot.model.relational.InitCommand; import org.hibernate.boot.model.relational.Namespace; -import org.hibernate.boot.model.relational.Sequence; import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.boot.registry.classloading.spi.ClassLoaderService; import org.hibernate.boot.spi.MetadataImplementor; @@ -27,10 +24,7 @@ import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.engine.jdbc.internal.FormatStyle; import org.hibernate.engine.jdbc.internal.Formatter; -import org.hibernate.mapping.ForeignKey; -import org.hibernate.mapping.Index; import org.hibernate.mapping.Table; -import org.hibernate.mapping.UniqueKey; import org.hibernate.mapping.UserDefinedType; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.spi.ServiceRegistryImplementor; @@ -99,7 +93,7 @@ public void doCreation( SourceDescriptor sourceDescriptor, TargetDescriptor targetDescriptor) { if ( !targetDescriptor.getTargetTypes().isEmpty() ) { - final Map configuration = options.getConfigurationValues(); + final var configuration = options.getConfigurationValues(); final JdbcContext jdbcContext = tool.resolveJdbcContext( configuration ); doCreation( metadata, @@ -120,7 +114,7 @@ public void doCreation( ContributableMatcher contributableInclusionFilter, SourceDescriptor sourceDescriptor, GenerationTarget... targets) { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { target.prepare(); } @@ -128,7 +122,7 @@ public void doCreation( performCreation( metadata, dialect, options, contributableInclusionFilter, sourceDescriptor, targets ); } finally { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { try { target.release(); } @@ -146,9 +140,9 @@ private void performCreation( ContributableMatcher contributableInclusionFilter, SourceDescriptor sourceDescriptor, GenerationTarget... targets) { - final SqlScriptCommandExtractor commandExtractor = getCommandExtractor(); + final var commandExtractor = tool.getServiceRegistry().getService( SqlScriptCommandExtractor.class ); final boolean format = interpretFormattingEnabled( options.getConfigurationValues() ); - final Formatter formatter = format ? FormatStyle.DDL.getFormatter() : FormatStyle.NONE.getFormatter(); + final var formatter = format ? FormatStyle.DDL.getFormatter() : FormatStyle.NONE.getFormatter(); switch ( sourceDescriptor.getSourceType() ) { case SCRIPT: @@ -170,10 +164,6 @@ private void performCreation( applyImportSources( options, commandExtractor, format, dialect, targets ); } - private SqlScriptCommandExtractor getCommandExtractor() { - return tool.getServiceRegistry().getService( SqlScriptCommandExtractor.class ); - } - @Override ClassLoaderService getClassLoaderService() { return tool.getServiceRegistry().getService( ClassLoaderService.class ); @@ -214,7 +204,7 @@ public void createFromMetadata( Dialect dialect, Formatter formatter, GenerationTarget... targets) { - final SqlStringGenerationContext context = createSqlStringGenerationContext(options, metadata); + final var context = createSqlStringGenerationContext(options, metadata); final Set exportIdentifiers = setOfSize(50); createSchemasAndCatalogs(metadata, options, schemaFilter, dialect, formatter, context, targets); @@ -243,7 +233,7 @@ public void createFromMetadata( } private static void executeInitCommands(Metadata metadata, ExecutionOptions options, Formatter formatter, GenerationTarget[] targets) { - for ( InitCommand initCommand : metadata.getDatabase().getInitCommands() ) { + for ( var initCommand : metadata.getDatabase().getInitCommands() ) { // todo: this should alo probably use the DML formatter... applySqlStrings( initCommand.initCommands(), formatter, options, targets); } @@ -257,7 +247,7 @@ private static void createAuxiliaryObjectsAfterTables( SqlStringGenerationContext context, Set exportIdentifiers, GenerationTarget[] targets) { - for ( AuxiliaryDatabaseObject auxiliaryDatabaseObject : metadata.getDatabase().getAuxiliaryDatabaseObjects() ) { + for ( var auxiliaryDatabaseObject : metadata.getDatabase().getAuxiliaryDatabaseObjects() ) { if ( auxiliaryDatabaseObject.appliesToDialect( dialect ) && !auxiliaryDatabaseObject.beforeTablesOnCreation() ) { checkExportIdentifier( auxiliaryDatabaseObject, exportIdentifiers ); @@ -281,14 +271,14 @@ private static void createForeignKeys( Formatter formatter, SqlStringGenerationContext context, GenerationTarget[] targets) { - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + for ( var namespace : metadata.getDatabase().getNamespaces() ) { // foreign keys must be created after unique keys for numerous DBs (see HHH-8390) if ( schemaFilter.includeNamespace( namespace ) ) { for ( Table table : namespace.getTables() ) { if ( schemaFilter.includeTable( table ) && contributableInclusionMatcher.matches( table ) ) { // foreign keys - for ( ForeignKey foreignKey : table.getForeignKeyCollection() ) { + for ( var foreignKey : table.getForeignKeyCollection() ) { applySqlStrings( dialect.getForeignKeyExporter().getSqlCreateStrings( foreignKey, metadata, context ), formatter, @@ -312,7 +302,7 @@ private static void createSequencesTablesConstraints( SqlStringGenerationContext context, Set exportIdentifiers, GenerationTarget[] targets) { - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + for ( var namespace : metadata.getDatabase().getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { // sequences createSequences( @@ -367,12 +357,12 @@ private static void createTableConstraints( Set exportIdentifiers, GenerationTarget[] targets, Namespace namespace) { - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( table.isPhysicalTable() && schemaFilter.includeTable( table ) && contributableInclusionMatcher.matches( table ) ) { // indexes - for ( Index index : table.getIndexes().values() ) { + for ( var index : table.getIndexes().values() ) { checkExportIdentifier( index, exportIdentifiers ); applySqlStrings( dialect.getIndexExporter().getSqlCreateStrings( index, metadata, context ), @@ -382,7 +372,7 @@ private static void createTableConstraints( ); } // unique keys - for ( UniqueKey uniqueKey : table.getUniqueKeys().values() ) { + for ( var uniqueKey : table.getUniqueKeys().values() ) { checkExportIdentifier( uniqueKey, exportIdentifiers ); applySqlStrings( dialect.getUniqueKeyExporter().getSqlCreateStrings( uniqueKey, metadata, context ), @@ -406,7 +396,7 @@ private static void createTables( Set exportIdentifiers, GenerationTarget[] targets, Namespace namespace) { - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( table.isPhysicalTable() && !table.isView() && schemaFilter.includeTable( table ) @@ -420,7 +410,7 @@ private static void createTables( ); } } - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( table.isPhysicalTable() && table.isView() && schemaFilter.includeTable( table ) @@ -447,7 +437,7 @@ private static void createSequences( Set exportIdentifiers, GenerationTarget[] targets, Namespace namespace) { - for ( Sequence sequence : namespace.getSequences() ) { + for ( var sequence : namespace.getSequences() ) { if ( schemaFilter.includeSequence( sequence ) && contributableInclusionMatcher.matches( sequence ) ) { checkExportIdentifier( sequence, exportIdentifiers); @@ -469,7 +459,7 @@ private static void createAuxiliaryObjectsBeforeTables( SqlStringGenerationContext context, Set exportIdentifiers, GenerationTarget[] targets) { - for ( AuxiliaryDatabaseObject auxiliaryDatabaseObject : metadata.getDatabase().getAuxiliaryDatabaseObjects() ) { + for ( var auxiliaryDatabaseObject : metadata.getDatabase().getAuxiliaryDatabaseObjects() ) { if ( auxiliaryDatabaseObject.beforeTablesOnCreation() && auxiliaryDatabaseObject.appliesToDialect( dialect ) ) { checkExportIdentifier( auxiliaryDatabaseObject, exportIdentifiers ); @@ -492,7 +482,7 @@ static void createUserDefinedTypes( Formatter formatter, SqlStringGenerationContext context, GenerationTarget[] targets) { - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + for ( var namespace : metadata.getDatabase().getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { for ( UserDefinedType userDefinedType : namespace.getDependencyOrderedUserDefinedTypes() ) { applySqlStrings( @@ -520,10 +510,10 @@ private static void createSchemasAndCatalogs( // first, create each catalog/schema if ( tryToCreateCatalogs || tryToCreateSchemas ) { Set exportedCatalogs = new HashSet<>(); - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + for ( var namespace : metadata.getDatabase().getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { - Namespace.Name logicalName = namespace.getName(); - Namespace.Name physicalName = namespace.getPhysicalName(); + final var logicalName = namespace.getName(); + final var physicalName = namespace.getPhysicalName(); if ( tryToCreateCatalogs ) { final Identifier catalogLogicalName = logicalName.catalog(); @@ -571,10 +561,10 @@ private static void checkExportIdentifier(Exportable exportable, Set exp * @return The generation commands */ public List generateCreationCommands(Metadata metadata, final boolean manageNamespaces) { - final JournalingGenerationTarget target = new JournalingGenerationTarget(); + final var target = new JournalingGenerationTarget(); - final MetadataImplementor metadataImplementor = (MetadataImplementor) metadata; - final Dialect dialect = + final var metadataImplementor = (MetadataImplementor) metadata; + final var dialect = metadataImplementor.getMetadataBuildingOptions() .getServiceRegistry() .requireService( JdbcEnvironment.class ) @@ -610,7 +600,7 @@ public void doCreation( Metadata metadata, final boolean manageNamespaces, GenerationTarget... targets) { - final ServiceRegistry serviceRegistry = + final var serviceRegistry = ( (MetadataImplementor) metadata ).getMetadataBuildingOptions() .getServiceRegistry(); doCreation( diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaDropperImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaDropperImpl.java index 9ae06336f28a..f8e2028dd45f 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaDropperImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaDropperImpl.java @@ -19,7 +19,6 @@ import org.hibernate.boot.model.relational.AuxiliaryDatabaseObject; import org.hibernate.boot.model.relational.Exportable; import org.hibernate.boot.model.relational.Namespace; -import org.hibernate.boot.model.relational.Sequence; import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.boot.spi.MetadataImplementor; import org.hibernate.dialect.Dialect; @@ -31,7 +30,6 @@ import org.hibernate.engine.jdbc.spi.JdbcServices; import org.hibernate.engine.jdbc.spi.SqlExceptionHelper; import org.hibernate.engine.jdbc.spi.SqlStatementLogger; -import org.hibernate.mapping.ForeignKey; import org.hibernate.mapping.Table; import org.hibernate.mapping.UserDefinedType; import org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder; @@ -109,7 +107,7 @@ public void doDrop( SourceDescriptor sourceDescriptor, TargetDescriptor targetDescriptor) { if ( !targetDescriptor.getTargetTypes().isEmpty() ) { - final Map configuration = options.getConfigurationValues(); + final var configuration = options.getConfigurationValues(); final JdbcContext jdbcContext = tool.resolveJdbcContext( configuration ); doDrop( metadata, @@ -146,7 +144,7 @@ public void doDrop( Dialect dialect, SourceDescriptor sourceDescriptor, GenerationTarget... targets) { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { target.prepare(); } @@ -154,7 +152,7 @@ public void doDrop( performDrop( metadata, options, inclusionFilter, dialect, sourceDescriptor, targets ); } finally { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { try { target.release(); } @@ -172,9 +170,9 @@ private void performDrop( Dialect dialect, SourceDescriptor sourceDescriptor, GenerationTarget... targets) { - final SqlScriptCommandExtractor commandExtractor = getCommandExtractor(); + final var commandExtractor = tool.getServiceRegistry().getService( SqlScriptCommandExtractor.class ); final boolean format = interpretFormattingEnabled( options.getConfigurationValues() ); - final Formatter formatter = format ? FormatStyle.DDL.getFormatter() : FormatStyle.NONE.getFormatter(); + final var formatter = format ? FormatStyle.DDL.getFormatter() : FormatStyle.NONE.getFormatter(); switch ( sourceDescriptor.getSourceType() ) { case SCRIPT: @@ -194,10 +192,6 @@ private void performDrop( } } - private SqlScriptCommandExtractor getCommandExtractor() { - return tool.getServiceRegistry().getService(SqlScriptCommandExtractor.class); - } - private void dropFromMetadata( Metadata metadata, ExecutionOptions options, @@ -210,7 +204,7 @@ private void dropFromMetadata( applySqlString( dialect.getBeforeDropStatement(), formatter, options, targets ); - final SqlStringGenerationContext context = createSqlStringGenerationContext( options, metadata ); + final var context = createSqlStringGenerationContext( options, metadata ); // Reverse the list on drop to retain possible dependencies dropAuxiliaryObjectsBeforeTables( metadata, options, dialect, formatter, context, targets ); dropConstraintsTablesSequences( @@ -236,7 +230,7 @@ private void dropConstraintsTablesSequences( SqlStringGenerationContext context, GenerationTarget[] targets) { final Set exportIdentifiers = setOfSize( 50 ); - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + for ( var namespace : metadata.getDatabase().getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { // we need to drop all constraints/indexes prior to dropping the tables @@ -287,7 +281,7 @@ private static void dropAuxiliaryObjectsBeforeTables( Formatter formatter, SqlStringGenerationContext context, GenerationTarget[] targets) { - for ( AuxiliaryDatabaseObject auxiliaryDatabaseObject : + for ( var auxiliaryDatabaseObject : reverse( metadata.getDatabase().getAuxiliaryDatabaseObjects() ) ) { if ( !auxiliaryDatabaseObject.beforeTablesOnCreation() && auxiliaryDatabaseObject.appliesToDialect(dialect) ) { @@ -309,7 +303,7 @@ private static void dropAuxiliaryObjectsAfterTables( Formatter formatter, SqlStringGenerationContext context, GenerationTarget[] targets) { - for ( AuxiliaryDatabaseObject auxiliaryDatabaseObject : + for ( var auxiliaryDatabaseObject : reverse( metadata.getDatabase().getAuxiliaryDatabaseObjects() ) ) { if ( auxiliaryDatabaseObject.beforeTablesOnCreation() && auxiliaryDatabaseObject.appliesToDialect(dialect) ) { @@ -334,7 +328,7 @@ private static void dropSequences( SqlStringGenerationContext context, Namespace namespace, GenerationTarget[] targets) { - for ( Sequence sequence : namespace.getSequences() ) { + for ( var sequence : namespace.getSequences() ) { if ( schemaFilter.includeSequence( sequence ) && inclusionFilter.matches( sequence ) ) { checkExportIdentifier( sequence, exportIdentifiers); @@ -359,7 +353,7 @@ private static void dropTables( SqlStringGenerationContext context, Namespace namespace, GenerationTarget[] targets) { - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( table.isPhysicalTable() && table.isView() && schemaFilter.includeTable( table ) @@ -373,7 +367,7 @@ private static void dropTables( ); } } - for ( Table table : namespace.getTables() ) { + for ( var table : namespace.getTables() ) { if ( table.isPhysicalTable() && !table.isView() && schemaFilter.includeTable( table ) @@ -397,9 +391,9 @@ static void dropUserDefinedTypes( Formatter formatter, SqlStringGenerationContext context, GenerationTarget[] targets) { - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + for ( var namespace : metadata.getDatabase().getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { - final List dependencyOrderedUserDefinedTypes = + final var dependencyOrderedUserDefinedTypes = namespace.getDependencyOrderedUserDefinedTypes(); Collections.reverse( dependencyOrderedUserDefinedTypes ); for ( UserDefinedType userDefinedType : dependencyOrderedUserDefinedTypes ) { @@ -427,7 +421,7 @@ private static void dropSchemasAndCatalogs( boolean tryToDropSchemas = options.shouldManageNamespaces() && dialect.canCreateSchema(); if ( tryToDropCatalogs || tryToDropSchemas) { final Set exportedCatalogs = new HashSet<>(); - for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { + for ( var namespace : metadata.getDatabase().getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { Namespace.Name logicalName = namespace.getName(); Namespace.Name physicalName = namespace.getPhysicalName(); @@ -468,13 +462,13 @@ private void applyConstraintDropping( SqlStringGenerationContext context, ContributableMatcher inclusionFilter, GenerationTarget... targets) { - final Dialect dialect = metadata.getDatabase().getJdbcEnvironment().getDialect(); + final var dialect = metadata.getDatabase().getJdbcEnvironment().getDialect(); if ( dialect.dropConstraints() ) { for ( Table table : namespace.getTables() ) { if ( table.isPhysicalTable() && schemaFilter.includeTable( table ) && inclusionFilter.matches( table ) ) { - for ( ForeignKey foreignKey : table.getForeignKeyCollection() ) { + for ( var foreignKey : table.getForeignKeyCollection() ) { applySqlStrings( dialect.getForeignKeyExporter().getSqlDropStrings( foreignKey, metadata, context ), formatter, @@ -511,7 +505,7 @@ public DelayedDropAction buildDelayedAction( * For tests */ public void doDrop(Metadata metadata, boolean manageNamespaces, GenerationTarget... targets) { - final ServiceRegistry serviceRegistry = + final var serviceRegistry = ( (MetadataImplementor) metadata ).getMetadataBuildingOptions() .getServiceRegistry(); doDrop( @@ -533,7 +527,7 @@ public void doDrop( final boolean manageNamespaces, GenerationTarget... targets) { if ( targets == null || targets.length == 0 ) { - final JdbcContext jdbcContext = tool.resolveJdbcContext( settings ); + final var jdbcContext = tool.resolveJdbcContext( settings ); targets = new GenerationTarget[] { new GenerationTargetToDatabase( serviceRegistry.requireService( TransactionCoordinatorBuilder.class ) @@ -561,7 +555,7 @@ public ExceptionHandler getExceptionHandler() { return ExceptionHandlerLoggedImpl.INSTANCE; } }, - (contributed) -> true, + contributed -> true, serviceRegistry.requireService( JdbcEnvironment.class ).getDialect(), new SourceDescriptor() { @Override @@ -609,7 +603,7 @@ public DelayedDropActionImpl(ArrayList commands, GenerationTarget target public void perform(ServiceRegistry serviceRegistry) { CORE_LOGGER.startingDelayedSchemaDrop(); - final JdbcContext jdbcContext = new JdbcContextDelayedDropImpl( serviceRegistry ); + final var jdbcContext = new JdbcContextDelayedDropImpl( serviceRegistry ); if ( target == null ) { target = new GenerationTargetToDatabase( diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaPopulatorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaPopulatorImpl.java index e4d58aadb13e..6e7add12c52a 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaPopulatorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaPopulatorImpl.java @@ -9,7 +9,6 @@ import org.hibernate.dialect.Dialect; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.spi.ServiceRegistryImplementor; -import org.hibernate.tool.schema.internal.exec.JdbcContext; import org.hibernate.tool.schema.spi.ExecutionOptions; import org.hibernate.tool.schema.spi.GenerationTarget; import org.hibernate.tool.schema.spi.SchemaManagementTool; @@ -17,8 +16,6 @@ import org.hibernate.tool.schema.spi.SqlScriptCommandExtractor; import org.hibernate.tool.schema.spi.TargetDescriptor; -import java.util.Map; - import static org.hibernate.internal.CoreMessageLogger.CORE_LOGGER; import static org.hibernate.tool.schema.internal.Helper.interpretFormattingEnabled; @@ -49,8 +46,8 @@ public SchemaPopulatorImpl(ServiceRegistry serviceRegistry) { @Override public void doPopulation(ExecutionOptions options, TargetDescriptor targetDescriptor) { if ( !targetDescriptor.getTargetTypes().isEmpty() ) { - final Map configuration = options.getConfigurationValues(); - final JdbcContext context = tool.resolveJdbcContext( configuration ); + final var configuration = options.getConfigurationValues(); + final var context = tool.resolveJdbcContext( configuration ); doPopulation( context.getDialect(), options, tool.buildGenerationTargets( targetDescriptor, context, configuration, true ) ); } @@ -58,7 +55,7 @@ public void doPopulation(ExecutionOptions options, TargetDescriptor targetDescri @Internal public void doPopulation(Dialect dialect, ExecutionOptions options, GenerationTarget... targets) { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { target.prepare(); } @@ -66,7 +63,7 @@ public void doPopulation(Dialect dialect, ExecutionOptions options, GenerationTa performPopulation( dialect, options, targets ); } finally { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { try { target.release(); } @@ -82,11 +79,8 @@ private void performPopulation( ExecutionOptions options, GenerationTarget... targets) { final boolean format = interpretFormattingEnabled( options.getConfigurationValues() ); - applyImportSources( options, getCommandExtractor(), format, dialect, targets ); - } - - private SqlScriptCommandExtractor getCommandExtractor() { - return tool.getServiceRegistry().getService( SqlScriptCommandExtractor.class ); + final var commandExtractor = tool.getServiceRegistry().getService( SqlScriptCommandExtractor.class ); + applyImportSources( options, commandExtractor, format, dialect, targets ); } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaTruncatorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaTruncatorImpl.java index eb1f295977ab..87fd05fe66f5 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaTruncatorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaTruncatorImpl.java @@ -6,7 +6,6 @@ import org.hibernate.Internal; import org.hibernate.boot.Metadata; -import org.hibernate.boot.model.relational.Database; import org.hibernate.boot.model.relational.Exportable; import org.hibernate.boot.model.relational.Namespace; import org.hibernate.boot.model.relational.SqlStringGenerationContext; @@ -15,10 +14,8 @@ import org.hibernate.engine.jdbc.internal.FormatStyle; import org.hibernate.engine.jdbc.internal.Formatter; import org.hibernate.internal.util.collections.CollectionHelper; -import org.hibernate.mapping.ForeignKey; import org.hibernate.mapping.Table; import org.hibernate.tool.schema.spi.GenerationTarget; -import org.hibernate.tool.schema.internal.exec.JdbcContext; import org.hibernate.tool.schema.spi.ContributableMatcher; import org.hibernate.tool.schema.spi.ExecutionOptions; import org.hibernate.tool.schema.spi.SchemaFilter; @@ -30,12 +27,12 @@ import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.Set; import static org.hibernate.tool.schema.internal.Helper.applySqlString; import static org.hibernate.tool.schema.internal.Helper.applySqlStrings; import static org.hibernate.tool.schema.internal.Helper.createSqlStringGenerationContext; +import static org.hibernate.tool.schema.internal.Helper.interpretFormattingEnabled; /** * Basic implementation of {@link SchemaTruncator}. @@ -59,13 +56,11 @@ public void doTruncate( ExecutionOptions options, ContributableMatcher contributableInclusionFilter, TargetDescriptor targetDescriptor) { - - final Map configurationValues = options.getConfigurationValues(); - final JdbcContext jdbcContext = tool.resolveJdbcContext(configurationValues); - final GenerationTarget[] targets = - tool.buildGenerationTargets( targetDescriptor, jdbcContext, configurationValues, + final var configuration = options.getConfigurationValues(); + final var jdbcContext = tool.resolveJdbcContext(configuration); + final var targets = + tool.buildGenerationTargets( targetDescriptor, jdbcContext, configuration, true ); //we need autocommit on for DB2 at least - doTruncate( metadata, options, contributableInclusionFilter, jdbcContext.getDialect(), targets ); } @@ -76,7 +71,7 @@ public void doTruncate( ContributableMatcher contributableInclusionFilter, Dialect dialect, GenerationTarget... targets) { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { target.prepare(); } @@ -84,7 +79,7 @@ public void doTruncate( performTruncate( metadata, options, contributableInclusionFilter, dialect, targets ); } finally { - for ( GenerationTarget target : targets ) { + for ( var target : targets ) { try { target.release(); } @@ -101,9 +96,8 @@ private void performTruncate( ContributableMatcher contributableInclusionFilter, Dialect dialect, GenerationTarget... targets) { - final boolean format = Helper.interpretFormattingEnabled( options.getConfigurationValues() ); - final Formatter formatter = format ? FormatStyle.DDL.getFormatter() : FormatStyle.NONE.getFormatter(); - + final boolean format = interpretFormattingEnabled( options.getConfigurationValues() ); + final var formatter = format ? FormatStyle.DDL.getFormatter() : FormatStyle.NONE.getFormatter(); truncateFromMetadata( metadata, options, schemaFilter, contributableInclusionFilter, dialect, formatter, targets ); } @@ -115,64 +109,59 @@ private void truncateFromMetadata( Dialect dialect, Formatter formatter, GenerationTarget... targets) { - final Database database = metadata.getDatabase(); + final var database = metadata.getDatabase(); SqlStringGenerationContext context = createSqlStringGenerationContext( options, metadata ); final Set exportIdentifiers = CollectionHelper.setOfSize( 50 ); - for ( Namespace namespace : database.getNamespaces() ) { + for ( var namespace : database.getNamespaces() ) { + if ( schemaFilter.includeNamespace( namespace ) ) { + disableConstraints( namespace, metadata, formatter, options, schemaFilter, context, + contributableInclusionFilter, targets ); + applySqlString( dialect.getTableCleaner().getSqlBeforeString(), formatter, options, targets ); - if ( ! schemaFilter.includeNamespace( namespace ) ) { - continue; - } - - disableConstraints( namespace, metadata, formatter, options, schemaFilter, context, - contributableInclusionFilter, targets ); - applySqlString( dialect.getTableCleaner().getSqlBeforeString(), formatter, options,targets ); - - // now it's safe to drop the tables - List list = new ArrayList<>( namespace.getTables().size() ); - for ( Table table : namespace.getTables() ) { - if ( ! table.isPhysicalTable() ) { - continue; - } - if ( ! schemaFilter.includeTable( table ) ) { - continue; + // now it's safe to drop the tables + List
list = new ArrayList<>( namespace.getTables().size() ); + for ( Table table : namespace.getTables() ) { + if ( !table.isPhysicalTable() ) { + continue; + } + if ( !schemaFilter.includeTable( table ) ) { + continue; + } + if ( !contributableInclusionFilter.matches( table ) ) { + continue; + } + checkExportIdentifier( table, exportIdentifiers ); + list.add( table ); } - if ( ! contributableInclusionFilter.matches( table ) ) { - continue; - } - checkExportIdentifier( table, exportIdentifiers ); - list.add( table ); - } - applySqlStrings( - dialect.getTableCleaner().getSqlTruncateStrings( list, metadata, context), - formatter, options,targets - ); + applySqlStrings( + dialect.getTableCleaner().getSqlTruncateStrings( list, metadata, context ), + formatter, options, targets + ); - //TODO: reset the sequences? -// for ( Sequence sequence : namespace.getSequences() ) { -// if ( ! options.getSchemaFilter().includeSequence( sequence ) ) { -// continue; -// } -// if ( ! contributableInclusionFilter.matches( sequence ) ) { -// continue; -// } -// checkExportIdentifier( sequence, exportIdentifiers ); + //TODO: reset the sequences? +// for ( var sequence : namespace.getSequences() ) { +// if ( ! options.getSchemaFilter().includeSequence( sequence ) ) { +// continue; +// } +// if ( ! contributableInclusionFilter.matches( sequence ) ) { +// continue; +// } +// checkExportIdentifier( sequence, exportIdentifiers ); // -// applySqlStrings( dialect.getSequenceExporter().getSqlDropStrings( sequence, metadata, -// context -// ), formatter, options, targets ); -// } +// applySqlStrings( dialect.getSequenceExporter().getSqlDropStrings( sequence, metadata, context ), +// formatter, options, targets ); +// } - applySqlString( dialect.getTableCleaner().getSqlAfterString(), formatter, options,targets ); - enableConstraints( namespace, metadata, formatter, options, schemaFilter, context, - contributableInclusionFilter, targets ); + applySqlString( dialect.getTableCleaner().getSqlAfterString(), formatter, options, targets ); + enableConstraints( namespace, metadata, formatter, options, schemaFilter, context, + contributableInclusionFilter, targets ); + } } - final SqlScriptCommandExtractor commandExtractor = - tool.getServiceRegistry().getService( SqlScriptCommandExtractor.class ); - final boolean format = Helper.interpretFormattingEnabled( options.getConfigurationValues() ); + final var commandExtractor = tool.getServiceRegistry().getService( SqlScriptCommandExtractor.class ); + final boolean format = interpretFormattingEnabled( options.getConfigurationValues() ); applyImportSources( options, commandExtractor, format, dialect, targets ); } @@ -185,35 +174,31 @@ private void disableConstraints( SqlStringGenerationContext context, ContributableMatcher contributableInclusionFilter, GenerationTarget... targets) { - final Dialect dialect = metadata.getDatabase().getJdbcEnvironment().getDialect(); + final var dialect = metadata.getDatabase().getJdbcEnvironment().getDialect(); - for ( Table table : namespace.getTables() ) { - if ( !table.isPhysicalTable() ) { - continue; - } - if ( ! schemaFilter.includeTable( table ) ) { - continue; - } - if ( ! contributableInclusionFilter.matches( table ) ) { - continue; - } - - for ( ForeignKey foreignKey : table.getForeignKeyCollection() ) { - if ( dialect.canDisableConstraints() ) { - applySqlString( - dialect.getTableCleaner().getSqlDisableConstraintString( foreignKey, metadata, context ), - formatter, - options, - targets - ); - } - else if ( !dialect.canBatchTruncate() ) { - applySqlStrings( - dialect.getForeignKeyExporter().getSqlDropStrings( foreignKey, metadata, context ), - formatter, - options, - targets - ); + for ( var table : namespace.getTables() ) { + if ( table.isPhysicalTable() + && schemaFilter.includeTable( table ) + && contributableInclusionFilter.matches( table ) ) { + for ( var foreignKey : table.getForeignKeyCollection() ) { + if ( dialect.canDisableConstraints() ) { + applySqlString( + dialect.getTableCleaner() + .getSqlDisableConstraintString( foreignKey, metadata, context ), + formatter, + options, + targets + ); + } + else if ( !dialect.canBatchTruncate() ) { + applySqlStrings( + dialect.getForeignKeyExporter() + .getSqlDropStrings( foreignKey, metadata, context ), + formatter, + options, + targets + ); + } } } } @@ -229,34 +214,27 @@ private void enableConstraints( ContributableMatcher contributableInclusionFilter, GenerationTarget... targets) { final Dialect dialect = metadata.getDatabase().getJdbcEnvironment().getDialect(); - for ( Table table : namespace.getTables() ) { - if ( !table.isPhysicalTable() ) { - continue; - } - if ( ! schemaFilter.includeTable( table ) ) { - continue; - } - if ( ! contributableInclusionFilter.matches( table ) ) { - continue; - } - - for ( ForeignKey foreignKey : table.getForeignKeyCollection() ) { - if ( dialect.canDisableConstraints() ) { - applySqlString( - dialect.getTableCleaner().getSqlEnableConstraintString( foreignKey, metadata, context ), - formatter, - options, - targets - ); - } - else if ( !dialect.canBatchTruncate() ) { - applySqlStrings( - dialect.getForeignKeyExporter().getSqlCreateStrings( foreignKey, metadata, context ), - formatter, - options, - targets - ); + if ( table.isPhysicalTable() + && schemaFilter.includeTable( table ) + && contributableInclusionFilter.matches( table ) ) { + for ( var foreignKey : table.getForeignKeyCollection() ) { + if ( dialect.canDisableConstraints() ) { + applySqlString( + dialect.getTableCleaner().getSqlEnableConstraintString( foreignKey, metadata, context ), + formatter, + options, + targets + ); + } + else if ( !dialect.canBatchTruncate() ) { + applySqlStrings( + dialect.getForeignKeyExporter().getSqlCreateStrings( foreignKey, metadata, context ), + formatter, + options, + targets + ); + } } } } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardForeignKeyExporter.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardForeignKeyExporter.java index b48479b989ff..a50505977429 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardForeignKeyExporter.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardForeignKeyExporter.java @@ -35,15 +35,9 @@ public StandardForeignKeyExporter(Dialect dialect) { @Override public String[] getSqlCreateStrings(ForeignKey foreignKey, Metadata metadata, SqlStringGenerationContext context) { - if ( !dialect.hasAlterTable() ) { - return NO_COMMANDS; - } - - if ( !foreignKey.isCreationEnabled() ) { - return NO_COMMANDS; - } - - if ( !foreignKey.isPhysicalConstraint() ) { + if ( !dialect.hasAlterTable() + || !foreignKey.isCreationEnabled() + || !foreignKey.isPhysicalConstraint() ) { return NO_COMMANDS; } @@ -61,9 +55,9 @@ public String[] getSqlCreateStrings(ForeignKey foreignKey, Metadata metadata, Sq final String sourceTableName = context.format( foreignKey.getTable().getQualifiedTableName() ); final String targetTableName = context.format( foreignKey.getReferencedTable().getQualifiedTableName() ); - final StringBuilder buffer = new StringBuilder( dialect.getAlterTableString( sourceTableName ) ) - .append( - foreignKey.getKeyDefinition() != null + final var buffer = + new StringBuilder( dialect.getAlterTableString( sourceTableName ) ) + .append( foreignKey.getKeyDefinition() != null ? dialect.getAddForeignKeyConstraintString( foreignKey.getName(), foreignKey.getKeyDefinition() @@ -74,11 +68,10 @@ public String[] getSqlCreateStrings(ForeignKey foreignKey, Metadata metadata, Sq targetTableName, targetColumnNames, foreignKey.isReferenceToPrimaryKey() - ) - ); + ) ); if ( dialect.supportsCascadeDelete() ) { - final OnDeleteAction onDeleteAction = foreignKey.getOnDeleteAction(); + final var onDeleteAction = foreignKey.getOnDeleteAction(); if ( onDeleteAction != null && onDeleteAction != OnDeleteAction.NO_ACTION ) { buffer.append( " on delete " ).append( onDeleteAction.toSqlString() ); } @@ -93,68 +86,65 @@ public String[] getSqlCreateStrings(ForeignKey foreignKey, Metadata metadata, Sq private static List getTargetColumns(ForeignKey foreignKey, int numberOfColumns) { if ( foreignKey.isReferenceToPrimaryKey() ) { - if ( numberOfColumns != foreignKey.getReferencedTable().getPrimaryKey().getColumnSpan() ) { + final var primaryKey = foreignKey.getReferencedTable().getPrimaryKey(); + if ( numberOfColumns != primaryKey.getColumnSpan() ) { throw new AssertionFailure( String.format( Locale.ENGLISH, COLUMN_MISMATCH_MSG, numberOfColumns, - foreignKey.getReferencedTable().getPrimaryKey().getColumnSpan(), + primaryKey.getColumnSpan(), foreignKey.getName(), foreignKey.getTable().getName(), foreignKey.getReferencedTable().getName() ) ); } - return foreignKey.getReferencedTable().getPrimaryKey().getColumns(); + return primaryKey.getColumns(); } else { - if ( numberOfColumns != foreignKey.getReferencedColumns().size() ) { + final var referencedColumns = foreignKey.getReferencedColumns(); + if ( numberOfColumns != referencedColumns.size() ) { throw new AssertionFailure( String.format( Locale.ENGLISH, COLUMN_MISMATCH_MSG, numberOfColumns, - foreignKey.getReferencedColumns().size(), + referencedColumns.size(), foreignKey.getName(), foreignKey.getTable().getName(), foreignKey.getReferencedTable().getName() ) ); } - return foreignKey.getReferencedColumns(); + return referencedColumns; } } @Override public String[] getSqlDropStrings(ForeignKey foreignKey, Metadata metadata, SqlStringGenerationContext context) { - if ( !dialect.hasAlterTable() ) { + if ( !dialect.hasAlterTable() + || !foreignKey.isCreationEnabled() + || !foreignKey.isPhysicalConstraint() ) { return NO_COMMANDS; } - - if ( !foreignKey.isCreationEnabled() ) { - return NO_COMMANDS; - } - - if ( !foreignKey.isPhysicalConstraint() ) { - return NO_COMMANDS; + else { + final String sourceTableName = context.format( foreignKey.getTable().getQualifiedTableName() ); + return new String[] {getSqlDropStrings( sourceTableName, foreignKey, dialect )}; } - - final String sourceTableName = context.format( foreignKey.getTable().getQualifiedTableName() ); - return new String[] { getSqlDropStrings( sourceTableName, foreignKey, dialect ) }; } private String getSqlDropStrings(String tableName, ForeignKey foreignKey, Dialect dialect) { - final StringBuilder buf = new StringBuilder( dialect.getAlterTableString( tableName ) ); - buf.append(" ").append( dialect.getDropForeignKeyString() ).append(" "); + final var alterTable = new StringBuilder( dialect.getAlterTableString( tableName ) ); + alterTable.append(" ").append( dialect.getDropForeignKeyString() ).append(" "); if ( dialect.supportsIfExistsBeforeConstraintName() ) { - buf.append( "if exists " ); + alterTable.append( "if exists " ); } - buf.append( dialect.quote( foreignKey.getName() ) ); + alterTable.append( dialect.quote( foreignKey.getName() ) ); if ( dialect.supportsIfExistsAfterConstraintName() ) { - buf.append( " if exists" ); + alterTable.append( " if exists" ); } - return buf.toString(); + return alterTable.toString(); } } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardIndexExporter.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardIndexExporter.java index 508f3437f142..4fab6bc61cc4 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardIndexExporter.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardIndexExporter.java @@ -4,15 +4,12 @@ */ package org.hibernate.tool.schema.internal; -import java.util.Map; import org.hibernate.boot.Metadata; import org.hibernate.boot.model.relational.QualifiedNameImpl; -import org.hibernate.boot.model.relational.QualifiedTableName; import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.dialect.Dialect; import org.hibernate.mapping.Index; -import org.hibernate.mapping.Selectable; import org.hibernate.tool.schema.spi.Exporter; import static org.hibernate.internal.util.StringHelper.isNotEmpty; @@ -37,7 +34,7 @@ protected Dialect getDialect() { @Override public String[] getSqlCreateStrings(Index index, Metadata metadata, SqlStringGenerationContext context) { - final StringBuilder createIndex = new StringBuilder() + final var createIndex = new StringBuilder() .append( dialect.getCreateIndexString( index.isUnique() ) ) .append( " " ) .append( indexName( index, context, metadata ) ) @@ -54,7 +51,7 @@ public String[] getSqlCreateStrings(Index index, Metadata metadata, SqlStringGen private String indexName(Index index, SqlStringGenerationContext context, Metadata metadata) { if ( dialect.qualifyIndexName() ) { - final QualifiedTableName qualifiedTableName = index.getTable().getQualifiedTableName(); + final var qualifiedTableName = index.getTable().getQualifiedTableName(); return context.format( new QualifiedNameImpl( qualifiedTableName.getCatalogName(), @@ -71,8 +68,8 @@ private String indexName(Index index, SqlStringGenerationContext context, Metada private void appendColumnList(Index index, StringBuilder createIndex) { boolean first = true; - final Map columnOrderMap = index.getSelectableOrderMap(); - for ( Selectable column : index.getSelectables() ) { + final var columnOrderMap = index.getSelectableOrderMap(); + for ( var column : index.getSelectables() ) { if ( first ) { first = false; } @@ -91,13 +88,12 @@ public String[] getSqlDropStrings(Index index, Metadata metadata, SqlStringGener if ( !dialect.dropConstraints() ) { return NO_COMMANDS; } - - final String tableName = context.format( index.getTable().getQualifiedTableName() ); - - final String indexNameForCreation = dialect.qualifyIndexName() - ? qualify( tableName, index.getName() ) - : index.getName(); - - return new String[] { "drop index " + indexNameForCreation }; + else { + final String tableName = context.format( index.getTable().getQualifiedTableName() ); + final String indexNameForCreation = dialect.qualifyIndexName() + ? qualify( tableName, index.getName() ) + : index.getName(); + return new String[] {"drop index " + indexNameForCreation}; + } } } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableExporter.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableExporter.java index f597d840371e..2452b9b9e4d1 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableExporter.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableExporter.java @@ -10,23 +10,19 @@ import org.hibernate.MappingException; import org.hibernate.boot.Metadata; import org.hibernate.boot.model.naming.Identifier; -import org.hibernate.boot.model.relational.InitCommand; import org.hibernate.boot.model.relational.QualifiedName; import org.hibernate.boot.model.relational.QualifiedNameParser; import org.hibernate.boot.model.relational.QualifiedTableName; import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.dialect.Dialect; import org.hibernate.dialect.aggregate.AggregateSupport; -import org.hibernate.internal.util.StringHelper; import org.hibernate.mapping.AggregateColumn; import org.hibernate.mapping.BasicValue; import org.hibernate.mapping.CheckConstraint; import org.hibernate.mapping.Column; import org.hibernate.mapping.Component; import org.hibernate.mapping.PrimaryKey; -import org.hibernate.mapping.Property; import org.hibernate.mapping.Table; -import org.hibernate.mapping.UniqueKey; import org.hibernate.mapping.Value; import org.hibernate.sql.Template; import org.hibernate.tool.schema.spi.Exporter; @@ -35,6 +31,7 @@ import static java.util.Collections.addAll; import static java.util.Comparator.comparing; import static org.hibernate.internal.util.StringHelper.EMPTY_STRINGS; +import static org.hibernate.internal.util.StringHelper.isNotEmpty; import static org.hibernate.tool.schema.internal.ColumnDefinitions.appendColumn; /** @@ -55,7 +52,7 @@ public String[] getSqlCreateStrings( Table table, Metadata metadata, SqlStringGenerationContext context) { - final QualifiedName tableName = getTableName( table ); + final var tableName = getTableName( table ); try { final String formattedTableName = context.format( tableName ); @@ -132,7 +129,7 @@ public String[] getSqlCreateStrings( applyTableTypeString( createTable ); } - if ( StringHelper.isNotEmpty( table.getOptions() ) ) { + if ( isNotEmpty( table.getOptions() ) ) { createTable.append( " " ); createTable.append( table.getOptions() ); } @@ -186,7 +183,7 @@ protected void applyComments(Table table, String formattedTableName, List sqlStrings, SqlStringGenerationContext context) { - for ( InitCommand initCommand : table.getInitCommands( context ) ) { + for ( var initCommand : table.getInitCommands( context ) ) { addAll( sqlStrings, initCommand.initCommands() ); } } @@ -197,11 +194,11 @@ protected void applyTableTypeString(StringBuilder buf) { protected void applyTableCheck(Table table, StringBuilder buf) { if ( dialect.supportsTableCheck() ) { - for ( Column column : table.getColumns() ) { - final List checkConstraints = column.getCheckConstraints(); + for ( var column : table.getColumns() ) { + final var checkConstraints = column.getCheckConstraints(); boolean hasAnonymousConstraints = false; if ( !dialect.supportsColumnCheck() ) { - for ( CheckConstraint constraint : checkConstraints ) { + for ( var constraint : checkConstraints ) { if ( constraint.isAnonymous() ) { if ( !hasAnonymousConstraints ) { buf.append( ", check (" ); @@ -227,7 +224,7 @@ protected void applyTableCheck(Table table, StringBuilder buf) { // supports named column check constraints, because ColumnDefinitions will render the first check // constraint already. boolean skipNextNamedConstraint = !hasAnonymousConstraints && dialect.supportsNamedColumnCheck(); - for ( CheckConstraint constraint : checkConstraints ) { + for ( var constraint : checkConstraints ) { if ( constraint.isNamed() ) { if ( skipNextNamedConstraint ) { skipNextNamedConstraint = false; @@ -238,12 +235,12 @@ protected void applyTableCheck(Table table, StringBuilder buf) { } } } - for ( CheckConstraint constraint : table.getChecks() ) { + for ( var constraint : table.getChecks() ) { buf.append( "," ).append( constraint.constraintString( dialect ) ); } - final AggregateSupport aggregateSupport = dialect.getAggregateSupport(); + final var aggregateSupport = dialect.getAggregateSupport(); if ( aggregateSupport != null && aggregateSupport.supportsComponentCheckConstraints() ) { - for ( Column column : table.getColumns() ) { + for ( var column : table.getColumns() ) { if ( column instanceof AggregateColumn aggregateColumn ) { if ( !isArray( aggregateColumn ) ) { applyAggregateColumnCheck( buf, aggregateColumn ); @@ -256,19 +253,15 @@ protected void applyTableCheck(Table table, StringBuilder buf) { private boolean isArray(AggregateColumn aggregateColumn) { final BasicValue value = (BasicValue) aggregateColumn.getValue(); - switch ( value.getResolution().getJdbcType().getDefaultSqlTypeCode() ) { - case SqlTypes.STRUCT_ARRAY: - case SqlTypes.STRUCT_TABLE: - case SqlTypes.JSON_ARRAY: - case SqlTypes.XML_ARRAY: - case SqlTypes.ARRAY: - return true; - } - return false; + return switch ( value.getResolution().getJdbcType().getDefaultSqlTypeCode() ) { + case SqlTypes.STRUCT_ARRAY, SqlTypes.STRUCT_TABLE, SqlTypes.JSON_ARRAY, SqlTypes.XML_ARRAY, SqlTypes.ARRAY + -> true; + default -> false; + }; } protected void applyAggregateColumnCheck(StringBuilder buf, AggregateColumn aggregateColumn) { - final AggregateSupport aggregateSupport = dialect.getAggregateSupport(); + final var aggregateSupport = dialect.getAggregateSupport(); final int checkStart = buf.length(); buf.append( ", check (" ); final int start = buf.length(); @@ -299,10 +292,11 @@ private String applyAggregateColumnCheck( AggregateSupport aggregateSupport, Value value) { if ( value instanceof Component component ) { - final AggregateColumn subAggregateColumn = component.getAggregateColumn(); + final var subAggregateColumn = component.getAggregateColumn(); if ( subAggregateColumn != null && !isArray( subAggregateColumn ) ) { - final String subAggregatePath = subAggregateColumn.getAggregateReadExpressionTemplate( dialect ) - .replace( Template.TEMPLATE + ".", "" ); + final String subAggregatePath = + subAggregateColumn.getAggregateReadExpressionTemplate( dialect ) + .replace( Template.TEMPLATE + ".", "" ); final int checkStart = buf.length(); if ( subAggregateColumn.isNullable() ) { buf.append( subAggregatePath ); @@ -310,7 +304,7 @@ private String applyAggregateColumnCheck( } final int start = buf.length(); separator = ""; - for ( Property property : component.getProperties() ) { + for ( var property : component.getProperties() ) { separator = applyAggregateColumnCheck( buf, separator, @@ -330,7 +324,7 @@ else if ( aggregateColumn.isNullable() ) { } } else { - for ( Column subColumn : value.getColumns() ) { + for ( var subColumn : value.getColumns() ) { final String checkConstraint = getCheckConstraint( subColumn ); if ( !subColumn.isNullable() || checkConstraint != null ) { final String subColumnName = subColumn.getQuotedName( dialect ); @@ -375,7 +369,7 @@ else if ( aggregateColumn.isNullable() ) { } private static String getCheckConstraint(Column subColumn) { - final List checkConstraints = subColumn.getCheckConstraints(); + final var checkConstraints = subColumn.getCheckConstraints(); if ( checkConstraints.isEmpty() ) { return null; } @@ -393,8 +387,8 @@ protected String tableCreateString(boolean hasPrimaryKey) { } protected String primaryKeyString(PrimaryKey key) { - final StringBuilder constraint = new StringBuilder(); - final UniqueKey orderingUniqueKey = key.getOrderingUniqueKey(); + final var constraint = new StringBuilder(); + final var orderingUniqueKey = key.getOrderingUniqueKey(); if ( orderingUniqueKey != null && orderingUniqueKey.isNameExplicit() ) { constraint.append( "constraint " ) .append( orderingUniqueKey.getName() ).append( ' ' ); @@ -415,7 +409,7 @@ protected String primaryKeyString(PrimaryKey key) { @Override public String[] getSqlDropStrings(Table table, Metadata metadata, SqlStringGenerationContext context) { - final StringBuilder dropTable = new StringBuilder(); + final var dropTable = new StringBuilder(); if ( table.getViewQuery() == null ) { dropTable.append( "drop table " ); } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableMigrator.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableMigrator.java index df10c0148dd3..cc59a7ec224d 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableMigrator.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableMigrator.java @@ -12,7 +12,6 @@ import org.hibernate.boot.model.relational.QualifiedTableName; import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.dialect.Dialect; -import org.hibernate.mapping.Column; import org.hibernate.mapping.Table; import org.hibernate.tool.schema.extract.spi.ColumnInformation; import org.hibernate.tool.schema.extract.spi.TableInformation; @@ -78,7 +77,7 @@ public static List sqlAlterStrings( final List results = new ArrayList<>(); - for ( Column column : table.getColumns() ) { + for ( var column : table.getColumns() ) { final ColumnInformation columnInformation = tableInformation.getColumn( Identifier.toIdentifier( column.getName(), column.isQuoted() ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardUserDefinedTypeExporter.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardUserDefinedTypeExporter.java index 3d6510d35519..66bce88a7725 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardUserDefinedTypeExporter.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardUserDefinedTypeExporter.java @@ -10,12 +10,10 @@ import org.hibernate.MappingException; import org.hibernate.boot.Metadata; import org.hibernate.boot.model.naming.Identifier; -import org.hibernate.boot.model.relational.QualifiedName; import org.hibernate.boot.model.relational.QualifiedNameParser; import org.hibernate.boot.model.relational.SqlStringGenerationContext; import org.hibernate.dialect.Dialect; import org.hibernate.internal.util.StringHelper; -import org.hibernate.mapping.Column; import org.hibernate.mapping.UserDefinedArrayType; import org.hibernate.mapping.UserDefinedObjectType; import org.hibernate.mapping.UserDefinedType; @@ -51,45 +49,37 @@ public String[] getSqlCreateStrings( UserDefinedObjectType userDefinedType, Metadata metadata, SqlStringGenerationContext context) { - final QualifiedName typeName = new QualifiedNameParser.NameParts( + final var typeName = new QualifiedNameParser.NameParts( Identifier.toIdentifier( userDefinedType.getCatalog(), userDefinedType.isCatalogQuoted() ), Identifier.toIdentifier( userDefinedType.getSchema(), userDefinedType.isSchemaQuoted() ), userDefinedType.getNameIdentifier() ); try { - String formattedTypeName = context.format( typeName ); - StringBuilder buf = + final String formattedTypeName = context.format( typeName ); + final var createType = new StringBuilder( "create type " ) .append( formattedTypeName ) .append( " as " ) .append( dialect.getCreateUserDefinedTypeKindString() ) .append( '(' ); - boolean isFirst = true; - for ( Column col : userDefinedType.getColumns() ) { + for ( var col : userDefinedType.getColumns() ) { if ( isFirst ) { isFirst = false; } else { - buf.append( ", " ); + createType.append( ", " ); } - - String colName = col.getQuotedName( dialect ); - buf.append( colName ); - - buf.append( ' ' ).append( col.getSqlType( metadata ) ); + createType.append( col.getQuotedName( dialect ) ); + createType.append( ' ' ).append( col.getSqlType( metadata ) ); } - - buf.append( ')' ); - - applyUserDefinedTypeExtensionsString( buf ); + createType.append( ')' ); + applyUserDefinedTypeExtensionsString( createType ); List sqlStrings = new ArrayList<>(); - sqlStrings.add( buf.toString() ); - + sqlStrings.add( createType.toString() ); applyComments( userDefinedType, formattedTypeName, sqlStrings ); - return sqlStrings.toArray(StringHelper.EMPTY_STRINGS); } catch (Exception e) { @@ -114,8 +104,8 @@ protected void applyComments(UserDefinedObjectType udt, String formattedTypeName if ( udt.getComment() != null ) { sqlStrings.add( "comment on type " + formattedTypeName + " is '" + udt.getComment() + "'" ); } - for ( Column column : udt.getColumns() ) { - String columnComment = column.getComment(); + for ( var column : udt.getColumns() ) { + final String columnComment = column.getComment(); if ( columnComment != null ) { sqlStrings.add( "comment on column " + formattedTypeName + '.' + column.getQuotedName( dialect ) + " is '" + columnComment + "'" ); } @@ -141,23 +131,20 @@ else if ( userDefinedType instanceof UserDefinedArrayType userDefinedArrayType ) } public String[] getSqlDropStrings(UserDefinedObjectType userDefinedType, Metadata metadata, SqlStringGenerationContext context) { - StringBuilder buf = new StringBuilder( "drop type " ); + final var dropType = new StringBuilder( "drop type " ); if ( dialect.supportsIfExistsBeforeTypeName() ) { - buf.append( "if exists " ); + dropType.append( "if exists " ); } - - final QualifiedName typeName = new QualifiedNameParser.NameParts( + final var typeName = new QualifiedNameParser.NameParts( Identifier.toIdentifier( userDefinedType.getCatalog(), userDefinedType.isCatalogQuoted() ), Identifier.toIdentifier( userDefinedType.getSchema(), userDefinedType.isSchemaQuoted() ), userDefinedType.getNameIdentifier() ); - buf.append( context.format( typeName ) ); - + dropType.append( context.format( typeName ) ); if ( dialect.supportsIfExistsAfterTypeName() ) { - buf.append( " if exists" ); + dropType.append( " if exists" ); } - - return new String[] { buf.toString() }; + return new String[] { dropType.toString() }; } public String[] getSqlDropStrings(UserDefinedArrayType userDefinedType, Metadata metadata, SqlStringGenerationContext context) { diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/GenerationTargetToDatabase.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/GenerationTargetToDatabase.java index dbfd8e2e8e27..0d0ec6a2917d 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/GenerationTargetToDatabase.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/GenerationTargetToDatabase.java @@ -101,7 +101,7 @@ private void logWarnings(Statement statement) { */ private static String stripSql(SQLException e) { final String message = e.getMessage(); - int index = message.indexOf( " SQL statement:" ); + final int index = message.indexOf( " SQL statement:" ); return index > 0 ? message.substring( 0, index ) : message; } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptSourceInputAggregate.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptSourceInputAggregate.java index d70a73bfbfdd..0e0a90d072ad 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptSourceInputAggregate.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptSourceInputAggregate.java @@ -53,7 +53,7 @@ public List extract(Function> extractor) { } } final List list = new ArrayList<>( size ); - for ( List strings : lists ) { + for ( var strings : lists ) { list.addAll( strings ); } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToFile.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToFile.java index 8bc542d513f4..03eb213e1739 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToFile.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToFile.java @@ -85,11 +85,12 @@ public void release() { @SuppressWarnings("ResultOfMethodCallIgnored") static Writer toFileWriter(File file, String charsetName, boolean append) { try { - if ( ! file.exists() ) { + if ( !file.exists() ) { // best effort, since this is very likely not allowed in EE environments CORE_LOGGER.attemptingToCreateScriptTarget( file.getAbsolutePath() ); - if ( file.getParentFile() != null ) { - file.getParentFile().mkdirs(); + final var parentFile = file.getParentFile(); + if ( parentFile != null ) { + parentFile.mkdirs(); } file.createNewFile(); } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToUrl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToUrl.java index 782e0c5aaace..3b618fbaebec 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToUrl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToUrl.java @@ -14,6 +14,7 @@ import org.hibernate.tool.schema.spi.ScriptTargetOutput; import static org.hibernate.internal.CoreMessageLogger.CORE_LOGGER; +import static org.hibernate.tool.schema.internal.exec.ScriptTargetOutputToFile.toFileWriter; /** * ScriptTargetOutput implementation for writing to supplied URL references @@ -82,7 +83,7 @@ private static Writer toWriter( URL url, String charsetName, boolean append ) { // Spec says only "strings corresponding to file URLs" are supported, // which I take to mean URLs whose protocol is "file" try { - return ScriptTargetOutputToFile.toFileWriter( new File( url.toURI() ), charsetName, append ); + return toFileWriter( new File( url.toURI() ), charsetName, append ); } catch (URISyntaxException e) { throw new SchemaManagementException( diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/MultiLineSqlScriptExtractor.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/MultiLineSqlScriptExtractor.java index 663782f675e2..3155aa0792e4 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/MultiLineSqlScriptExtractor.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/MultiLineSqlScriptExtractor.java @@ -43,20 +43,20 @@ public class MultiLineSqlScriptExtractor implements SqlScriptCommandExtractor { @Override public List extractCommands(Reader reader, Dialect dialect) { try { - final SqlScriptParser.ScriptContext scriptParseTree = buildScriptParseTree( reader ); - final SqlScriptVisitor visitor = new SqlScriptVisitor( dialect ); + final var scriptParseTree = buildScriptParseTree( reader ); + final var visitor = new SqlScriptVisitor( dialect ); return visitor.visitScript( scriptParseTree ); } catch (Exception exception) { if ( exception instanceof SqlScriptException sqlScriptException ) { throw sqlScriptException; } - throw new SqlScriptException( "Error during sql-script parsing.", exception ); + throw new SqlScriptException( "Error during SQL script parsing", exception ); } } private static SqlScriptParser.ScriptContext buildScriptParseTree(Reader reader) throws IOException { - final SqlScriptLexer lexer = new SqlScriptLexer( CharStreams.fromReader( reader ) ); + final var lexer = new SqlScriptLexer( CharStreams.fromReader( reader ) ); return buildScriptParseTree( lexer ); } @@ -98,7 +98,7 @@ public void syntaxError( String msg, RecognitionException e) { if ( msg.contains( "missing ';'" ) ) { - throw new SqlScriptException( "Import script Sql statements must terminate with a ';' char" ); + throw new SqlScriptException( "Import script SQL statements must terminate with a ';' char" ); } super.syntaxError( recognizer, offendingSymbol, line, charPositionInLine, msg, e ); } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SingleLineSqlScriptExtractor.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SingleLineSqlScriptExtractor.java index 4dde536297a9..d08958f749b1 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SingleLineSqlScriptExtractor.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SingleLineSqlScriptExtractor.java @@ -32,27 +32,19 @@ public class SingleLineSqlScriptExtractor implements SqlScriptCommandExtractor { @Override public List extractCommands(Reader reader, Dialect dialect) { final List statementList = new LinkedList<>(); - - final BufferedReader bufferedReader = new BufferedReader( reader ); + final var bufferedReader = new BufferedReader( reader ); try { for ( String line = bufferedReader.readLine(); line != null; line = bufferedReader.readLine() ) { final String trimmedLine = line.trim(); - - if ( trimmedLine.isEmpty() || isComment( trimmedLine ) ) { - continue; - } - - final String command; - if ( trimmedLine.endsWith( ";" ) ) { - command = trimmedLine.substring( 0, trimmedLine.length() - 1 ); - } - else { - command = trimmedLine; + if ( !trimmedLine.isEmpty() && !isComment( trimmedLine ) ) { + final String command = + trimmedLine.endsWith( ";" ) + ? trimmedLine.substring( 0, trimmedLine.length() - 1 ) + : trimmedLine; + statementList.add( command ); } - statementList.add( command ); } - return statementList; } catch (IOException e) { diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SqlScriptExtractorInitiator.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SqlScriptExtractorInitiator.java index a39a4f3cfac1..5125ad205245 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SqlScriptExtractorInitiator.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SqlScriptExtractorInitiator.java @@ -28,26 +28,26 @@ public Class getServiceInitiated() { @Override public SqlScriptCommandExtractor initiateService(Map configurationValues, ServiceRegistryImplementor registry) { final Object explicitSettingValue = configurationValues.get( HBM2DDL_IMPORT_FILES_SQL_EXTRACTOR ); - if ( explicitSettingValue == null ) { return SingleLineSqlScriptExtractor.INSTANCE; } - - if ( explicitSettingValue instanceof SqlScriptCommandExtractor commandExtractor ) { + else if ( explicitSettingValue instanceof SqlScriptCommandExtractor commandExtractor ) { return commandExtractor; } - - final String explicitSettingName = explicitSettingValue.toString().trim(); - - if ( explicitSettingName.isEmpty() || SingleLineSqlScriptExtractor.SHORT_NAME.equals( explicitSettingName ) ) { - return SingleLineSqlScriptExtractor.INSTANCE; - } - else if ( MultiLineSqlScriptExtractor.SHORT_NAME.equals( explicitSettingName ) ) { - return MultiLineSqlScriptExtractor.INSTANCE; + else { + final String explicitSettingName = explicitSettingValue.toString().trim(); + if ( explicitSettingName.isEmpty() + || SingleLineSqlScriptExtractor.SHORT_NAME.equals( explicitSettingName ) ) { + return SingleLineSqlScriptExtractor.INSTANCE; + } + else if ( MultiLineSqlScriptExtractor.SHORT_NAME.equals( explicitSettingName ) ) { + return MultiLineSqlScriptExtractor.INSTANCE; + } + else { + return instantiateExplicitCommandExtractor( explicitSettingName, + registry.requireService( ClassLoaderService.class ) ); + } } - - final ClassLoaderService classLoaderService = registry.requireService( ClassLoaderService.class ); - return instantiateExplicitCommandExtractor( explicitSettingName, classLoaderService ); } private SqlScriptCommandExtractor instantiateExplicitCommandExtractor( diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SqlScriptVisitor.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SqlScriptVisitor.java index 78024a0bdf08..f846b75c2e97 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SqlScriptVisitor.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SqlScriptVisitor.java @@ -5,7 +5,6 @@ package org.hibernate.tool.schema.internal.script; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.hibernate.dialect.Dialect; @@ -16,6 +15,8 @@ import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; +import static java.util.Collections.emptyList; + /** * @author Steve Ebersole * @author Christian Beikov @@ -31,17 +32,16 @@ public SqlScriptVisitor(Dialect dialect) { public List visitScript(SqlScriptParser.ScriptContext ctx) { final List children = ctx.children; if ( children == null ) { - return Collections.emptyList(); + return emptyList(); } final ArrayList commands = new ArrayList<>( children.size() ); - final StringBuilder commandBuffer = new StringBuilder(); + final var commandBuffer = new StringBuilder(); for ( int i = 0; i < children.size(); i++ ) { - final ParseTree parseTree = children.get( i ); - if ( parseTree instanceof SqlScriptParser.CommandBlockContext blockContext ) { + if ( children.get( i ) instanceof SqlScriptParser.CommandBlockContext blockContext ) { commandBuffer.setLength( 0 ); final List terminalNodes = blockContext.command().children; for ( int j = 0; j < terminalNodes.size(); j++ ) { - final TerminalNode terminalNode = (TerminalNode) terminalNodes.get( j ); + final var terminalNode = (TerminalNode) terminalNodes.get( j ); switch ( terminalNode.getSymbol().getType() ) { case SqlScriptLexer.CHAR: case SqlScriptLexer.SPACE: diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/IndividuallySchemaValidatorImplTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/IndividuallySchemaValidatorImplTest.java index 7b2100272592..a5591407414b 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/IndividuallySchemaValidatorImplTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/IndividuallySchemaValidatorImplTest.java @@ -108,7 +108,7 @@ public void testMissingEntityContainsQualifiedEntityName() { Assert.fail( "SchemaManagementException expected" ); } catch (SchemaManagementException e) { - assertEquals("Schema-validation: missing table [SomeCatalog.SomeSchema.MissingEntity]", e.getMessage()); + assertEquals("Schema validation: missing table [SomeCatalog.SomeSchema.MissingEntity]", e.getMessage()); } } @@ -126,7 +126,7 @@ public void testMissingEntityContainsUnqualifiedEntityName() { Assert.fail( "SchemaManagementException expected" ); } catch (SchemaManagementException e) { - assertEquals("Schema-validation: missing table [UnqualifiedMissingEntity]", e.getMessage()); + assertEquals("Schema validation: missing table [UnqualifiedMissingEntity]", e.getMessage()); } } @@ -177,7 +177,7 @@ public void testMissingColumn() { Assert.fail( "SchemaManagementException expected" ); } catch (SchemaManagementException e) { - assertEquals("Schema-validation: missing column [name] in table [SomeSchema.ColumnEntity]", e.getMessage()); + assertEquals("Schema validation: missing column [name] in table [SomeSchema.ColumnEntity]", e.getMessage()); } } finally { @@ -237,13 +237,13 @@ public void testMismatchColumnType() { if ( metadata.getDatabase().getDialect().getVersion().isSameOrAfter( 2 ) ) { // Reports "character varying" since 2.0 assertEquals( - "Schema-validation: wrong column type encountered in column [name] in table [SomeSchema.ColumnEntity]; found [character varying (Types#VARCHAR)], but expecting [integer (Types#INTEGER)]", + "Schema validation: wrong column type encountered in column [name] in table [SomeSchema.ColumnEntity]; found [character varying (Types#VARCHAR)], but expecting [integer (Types#INTEGER)]", e.getMessage() ); } else { assertEquals( - "Schema-validation: wrong column type encountered in column [name] in table [SomeSchema.ColumnEntity]; found [varchar (Types#VARCHAR)], but expecting [integer (Types#INTEGER)]", + "Schema validation: wrong column type encountered in column [name] in table [SomeSchema.ColumnEntity]; found [varchar (Types#VARCHAR)], but expecting [integer (Types#INTEGER)]", e.getMessage() ); } diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/MySQLColumnValidationTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/MySQLColumnValidationTest.java index c72b38a1a1e9..de8e701b85df 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/MySQLColumnValidationTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/MySQLColumnValidationTest.java @@ -180,7 +180,7 @@ public ExceptionHandler getExceptionHandler() { } catch (SchemaManagementException e) { assertEquals( - "Schema-validation: wrong column type encountered in column [integral1] in table [TEST_DATA2]; found [tinyint unsigned (Types#TINYINT)], but expecting [tinyint (Types#INTEGER)]", + "Schema validation: wrong column type encountered in column [integral1] in table [TEST_DATA2]; found [tinyint unsigned (Types#TINYINT)], but expecting [tinyint (Types#INTEGER)]", e.getMessage() ); } @@ -194,7 +194,7 @@ public ExceptionHandler getExceptionHandler() { } catch (SchemaManagementException e) { assertEquals( - "Schema-validation: wrong column type encountered in column [integral1] in table [TEST_DATA3]; found [tinyint unsigned (Types#TINYINT)], but expecting [tinyint unsigned default '0' (Types#INTEGER)]", + "Schema validation: wrong column type encountered in column [integral1] in table [TEST_DATA3]; found [tinyint unsigned (Types#TINYINT)], but expecting [tinyint unsigned default '0' (Types#INTEGER)]", e.getMessage() ); } diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/scripts/StatementsWithoutTerminalCharsImportFileTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/scripts/StatementsWithoutTerminalCharsImportFileTest.java index 8a6d5d38b862..0113edf20b82 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/scripts/StatementsWithoutTerminalCharsImportFileTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/tool/schema/scripts/StatementsWithoutTerminalCharsImportFileTest.java @@ -57,7 +57,7 @@ public class StatementsWithoutTerminalCharsImportFileTest extends BaseUnitTestCase implements ExecutionOptions { private StandardServiceRegistry ssr; - private static final String EXPECTED_ERROR_MESSAGE = "Import script Sql statements must terminate with a ';' char"; + private static final String EXPECTED_ERROR_MESSAGE = "Import script SQL statements must terminate with a ';' char"; @Before public void setUp() {