From efe5a631fca6a7273edc14cf74e25339750b257e Mon Sep 17 00:00:00 2001 From: Gavin King Date: Fri, 3 Jan 2025 21:14:47 +0100 Subject: [PATCH 1/3] move JoinedSubclassEntityPersister.reverse() methods to ArrayHelper --- .../util/collections/ArrayHelper.java | 43 ++++++++++++++- .../entity/JoinedSubclassEntityPersister.java | 53 +++---------------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ArrayHelper.java b/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ArrayHelper.java index 494be4cedf13..79c115b981f6 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ArrayHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ArrayHelper.java @@ -431,12 +431,50 @@ public static int countNonNull(Object[] array) { return i; } + /** + * Reverse the elements of the incoming array + * + * @return New array with all elements in reversed order + */ public static String[] reverse(String[] source) { final int length = source.length; final String[] destination = new String[length]; for ( int i = 0; i < length; i++ ) { - final int x = length - i - 1; - destination[x] = source[i]; + destination[length - i - 1] = source[i]; + } + return destination; + } + + /** + * Reverse the first n elements of the incoming array + * + * @return New array with the first n elements in reversed order + */ + public static String[] reverseFirst(String[] objects, int n) { + final int length = objects.length; + final String[] destination = new String[length]; + for ( int i = 0; i < n; i++ ) { + destination[i] = objects[n - i - 1]; + } + for ( int i = n; i < length; i++ ) { + destination[i] = objects[i]; + } + return destination; + } + + /** + * Reverse the first n elements of the incoming array + * + * @return New array with the first n elements in reversed order + */ + public static String[][] reverseFirst(String[][] objects, int n) { + final int length = objects.length; + final String[][] destination = new String[length][]; + for ( int i = 0; i < n; i++ ) { + destination[i] = objects[n - i - 1]; + } + for ( int i = n; i < length; i++ ) { + destination[i] = objects[i]; } return destination; } @@ -485,4 +523,5 @@ public static void forEach(T[] array, Consumer consumer) { public static T[] newInstance(Class elementType, int length) { return (T[]) Array.newInstance( elementType, length ); } + } diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java index 3df9c22c93aa..55b780a1c37c 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java @@ -65,6 +65,7 @@ import org.jboss.logging.Logger; import static java.util.Collections.emptyMap; +import static org.hibernate.internal.util.collections.ArrayHelper.reverseFirst; import static org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray; import static org.hibernate.internal.util.collections.ArrayHelper.toIntArray; import static org.hibernate.internal.util.collections.ArrayHelper.toStringArray; @@ -341,12 +342,12 @@ public JoinedSubclassEntityPersister( // the first table as it will the driving table. // tableNames -> CLIENT, PERSON - this.tableNames = reverse( naturalOrderTableNames, coreTableSpan ); - tableKeyColumns = reverse( naturalOrderTableKeyColumns, coreTableSpan ); - tableKeyColumnReaders = reverse( naturalOrderTableKeyColumnReaders, coreTableSpan ); - tableKeyColumnReaderTemplates = reverse( naturalOrderTableKeyColumnReaderTemplates, coreTableSpan ); - subclassTableNameClosure = reverse( naturalOrderSubclassTableNameClosure, coreTableSpan ); - subclassTableKeyColumnClosure = reverse( naturalOrderSubclassTableKeyColumnClosure, coreTableSpan ); + this.tableNames = reverseFirst( naturalOrderTableNames, coreTableSpan ); + tableKeyColumns = reverseFirst( naturalOrderTableKeyColumns, coreTableSpan ); + tableKeyColumnReaders = reverseFirst( naturalOrderTableKeyColumnReaders, coreTableSpan ); + tableKeyColumnReaderTemplates = reverseFirst( naturalOrderTableKeyColumnReaderTemplates, coreTableSpan ); + subclassTableNameClosure = reverseFirst( naturalOrderSubclassTableNameClosure, coreTableSpan ); + subclassTableKeyColumnClosure = reverseFirst( naturalOrderSubclassTableKeyColumnClosure, coreTableSpan ); spaces = ArrayHelper.join( this.tableNames, toStringArray( persistentClass.getSynchronizedTables() ) ); @@ -800,46 +801,6 @@ public boolean isPropertyOfTable(int property, int j) { return naturalOrderPropertyTableNumbers[property] == j; } - /** - * Reverse the first n elements of the incoming array - * - * @return New array with the first n elements in reversed order - */ - private static String[] reverse(String[] objects, int n) { - - int size = objects.length; - String[] temp = new String[size]; - - for ( int i = 0; i < n; i++ ) { - temp[i] = objects[n - i - 1]; - } - - for ( int i = n; i < size; i++ ) { - temp[i] = objects[i]; - } - - return temp; - } - - /** - * Reverse the first n elements of the incoming array - * - * @return New array with the first n elements in reversed order - */ - private static String[][] reverse(String[][] objects, int n) { - int size = objects.length; - String[][] temp = new String[size][]; - for ( int i = 0; i < n; i++ ) { - temp[i] = objects[n - i - 1]; - } - - for ( int i = n; i < size; i++ ) { - temp[i] = objects[i]; - } - - return temp; - } - @Override public String getTableName() { return tableNames[0]; From f37dddae971d45f6bc1f72cac4765d88fb611117 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Fri, 3 Jan 2025 21:52:46 +0100 Subject: [PATCH 2/3] Some cleanups done automatically by IntelliJ with some revision by me --- .../hibernate/DuplicateMappingException.java | 2 +- .../internal/AbstractEntityInsertAction.java | 2 +- .../binder/internal/BatchSizeBinder.java | 3 +- .../binder/internal/CommentBinder.java | 3 +- .../internal/DiscriminatorOptionsBinder.java | 3 +- .../org/hibernate/boot/MetadataSources.java | 4 +- .../boot/cfgxml/spi/LoadedConfig.java | 3 +- .../java/org/hibernate/boot/jaxb/Origin.java | 6 +-- .../jaxb/hbm/transform/HbmXmlTransformer.java | 2 +- .../internal/stax/JpaOrmXmlEventReader.java | 11 ++-- .../stax/LocalXmlResourceResolver.java | 6 +-- .../stax/XMLStreamConstantsUtils.java | 39 +++++--------- .../model/IdentifierGeneratorDefinition.java | 3 +- .../AggregateComponentSecondPass.java | 15 ++---- .../model/internal/AnnotatedJoinColumns.java | 6 +-- .../boot/model/internal/EntityBinder.java | 5 +- .../internal/GeneratorAnnotationHelper.java | 4 +- .../internal/InferredBasicValueResolver.java | 9 ++-- .../internal/ManagedResourcesImpl.java | 3 +- .../internal/OverriddenMappingDefaults.java | 2 +- .../hbm/AbstractEntitySourceImpl.java | 5 +- .../AbstractPluralAttributeSourceImpl.java | 3 +- ...ctSingularAttributeSourceEmbeddedImpl.java | 2 +- .../hbm/AuxiliaryDatabaseObjectBinder.java | 4 +- .../internal/hbm/EntityHierarchyBuilder.java | 9 ++-- .../hbm/EntityHierarchySourceImpl.java | 2 +- ...tchCharacteristicsPluralAttributeImpl.java | 2 +- .../source/internal/hbm/FormulaImpl.java | 2 +- .../hbm/HbmMetadataSourceProcessorImpl.java | 4 +- .../hbm/JoinedSubclassEntitySourceImpl.java | 2 +- .../internal/hbm/RelationalObjectBinder.java | 3 +- .../hbm/RelationalValueSourceHelper.java | 3 +- .../hbm/SingularAttributeSourceBasicImpl.java | 2 +- .../SingularAttributeSourceOneToOneImpl.java | 2 +- ...SingularIdentifierAttributeSourceImpl.java | 2 +- .../internal/FilterDefAnnotation.java | 2 +- .../internal/UuidGeneratorAnnotation.java | 2 +- .../xml/internal/db/JoinColumnProcessing.java | 5 +- .../BootstrapServiceRegistryImpl.java | 5 +- .../internal/StrategySelectorImpl.java | 2 +- .../spi/interceptor/EnhancementHelper.java | 3 +- .../bytebuddy/BytecodeProviderImpl.java | 30 ++++------- .../bytebuddy/PassThroughInterceptor.java | 3 +- .../internal/DomainDataRegionConfigImpl.java | 4 +- .../internal/CacheKeyImplementation.java | 6 +-- .../cache/internal/NaturalIdCacheKey.java | 6 +-- .../cache/spi/entry/StructuredCacheEntry.java | 2 +- .../AbstractPostgreSQLStructJdbcType.java | 15 ++---- .../DmlTargetColumnQualifierSupport.java | 2 +- .../GroupByConstantRenderingStrategy.java | 2 +- ...GroupBySummarizationRenderingStrategy.java | 2 +- .../org/hibernate/dialect/JsonHelper.java | 7 ++- .../dialect/MariaDBSqlAstTranslator.java | 3 +- .../dialect/MySQLSqlAstTranslator.java | 3 +- .../org/hibernate/dialect/NullOrdering.java | 2 +- .../dialect/OracleArrayJdbcType.java | 3 +- .../dialect/OracleBaseStructJdbcType.java | 3 +- .../dialect/OracleSqlAstTranslator.java | 3 +- .../dialect/PostgreSQLArrayJdbcType.java | 3 +- .../PostgreSQLIntervalSecondJdbcType.java | 3 +- .../dialect/PostgreSQLSqlAstTranslator.java | 3 +- .../hibernate/dialect/RowLockStrategy.java | 2 +- .../dialect/SQLServerSqlAstTranslator.java | 5 +- .../dialect/SelectItemReferenceStrategy.java | 2 +- .../dialect/TiDBSqlAstTranslator.java | 3 +- .../aggregate/OracleAggregateSupport.java | 2 +- .../aggregate/SQLServerAggregateSupport.java | 2 +- .../InsertSubstringOverlayEmulation.java | 3 +- .../function/SQLServerEveryAnyEmulation.java | 2 +- .../hibernate/dialect/function/SqlColumn.java | 6 +-- .../dialect/function/array/ArrayHelper.java | 3 +- .../array/OracleArrayConstructorFunction.java | 3 +- .../PostgreSQLArrayConstructorFunction.java | 3 +- .../array/PostgreSQLArrayTrimEmulation.java | 3 +- .../function/json/DB2JsonTableFunction.java | 2 +- .../function/json/H2JsonValueFunction.java | 14 +++-- .../json/JsonObjectArgumentsValidator.java | 6 +-- .../dialect/function/json/JsonPathHelper.java | 6 +-- .../json/PostgreSQLJsonReplaceFunction.java | 6 +-- .../SQLServerJsonArrayAppendFunction.java | 7 ++- .../json/SQLServerJsonExistsFunction.java | 7 ++- .../json/SQLServerJsonInsertFunction.java | 7 ++- .../json/SQLServerJsonQueryFunction.java | 5 +- .../json/SQLServerJsonReplaceFunction.java | 7 ++- .../json/SQLServerJsonTableFunction.java | 7 ++- .../dialect/temptable/TemporaryTable.java | 12 ++--- .../temptable/TemporaryTableHelper.java | 2 +- .../dialect/temptable/TemporaryTableKind.java | 2 +- .../hibernate/engine/internal/Cascade.java | 3 +- .../engine/internal/EntityEntryContext.java | 2 +- .../engine/internal/ForeignKeys.java | 6 +-- .../engine/internal/ManagedTypeHelper.java | 51 +++++++------------ .../engine/internal/Nullability.java | 3 +- .../env/internal/JdbcEnvironmentImpl.java | 2 +- .../engine/jdbc/internal/FormatStyle.java | 2 +- .../engine/jndi/internal/JndiServiceImpl.java | 37 +++++++------- .../WebSphereExtendedJtaPlatform.java | 6 +-- .../internal/WebSphereJtaPlatform.java | 11 ++-- .../hibernate/event/spi/AutoFlushEvent.java | 2 +- .../org/hibernate/event/spi/DeleteEvent.java | 2 +- .../hibernate/event/spi/PostInsertEvent.java | 8 +-- .../hibernate/event/spi/PostUpdateEvent.java | 10 ++-- .../hibernate/event/spi/PostUpsertEvent.java | 8 +-- .../hibernate/event/spi/PreDeleteEvent.java | 2 +- .../org/hibernate/generator/EventType.java | 2 +- .../id/SequenceMismatchStrategy.java | 3 +- .../id/uuid/CustomVersionOneStrategy.java | 2 +- .../internal/util/ExceptionHelper.java | 2 +- .../internal/util/GenericsHelper.java | 3 +- .../internal/util/ImmutableBitSet.java | 3 +- .../hibernate/internal/util/NullnessUtil.java | 26 +++++----- .../collections/BoundedConcurrentHashMap.java | 6 +-- .../ConcurrentReferenceHashMap.java | 51 +++++++++---------- .../util/collections/ReadOnlyMap.java | 2 +- .../event/internal/CallbackRegistryImpl.java | 20 ++++---- .../ast/internal/LoaderSelectBuilder.java | 21 +++----- .../ast/internal/MultiKeyLoadHelper.java | 3 +- .../hibernate/mapping/MappedSuperclass.java | 18 ++----- .../hibernate/mapping/PersistentClass.java | 3 +- .../metamodel/CollectionClassification.java | 3 +- .../AbstractCompositeIdentifierMapping.java | 3 +- .../EmbeddableRepresentationStrategyPojo.java | 6 +-- ...ityRepresentationStrategyPojoStandard.java | 6 +-- .../mapping/EmbeddableMappingType.java | 9 ++-- .../metamodel/mapping/MappingModelHelper.java | 9 ++-- .../mapping/internal/AbstractDomainPath.java | 3 +- .../internal/AbstractEmbeddableMapping.java | 15 ++---- .../EmbeddedForeignKeyDescriptor.java | 20 +++----- .../mapping/internal/IdClassEmbeddable.java | 6 +-- ...InverseNonAggregatedIdentifierMapping.java | 3 +- .../internal/ManyToManyCollectionPart.java | 6 +-- .../internal/MappingModelCreationHelper.java | 31 ++++------- .../NonAggregatedIdentifierMappingImpl.java | 3 +- .../internal/OneToManyCollectionPart.java | 3 +- .../internal/SelectableMappingImpl.java | 2 +- .../internal/SimpleForeignKeyDescriptor.java | 3 +- .../internal/ToOneAttributeMapping.java | 26 ++++------ .../mapping/ordering/ast/ColumnReference.java | 6 +-- .../ordering/ast/ParseTreeVisitor.java | 6 +-- .../mapping/ordering/ast/PathConsumer.java | 2 +- .../ordering/ast/PluralAttributePath.java | 6 +-- .../domain/internal/AbstractAttribute.java | 2 +- .../internal/EmbeddedSqmPathSource.java | 6 +-- .../model/domain/internal/MapMember.java | 2 +- .../internal/SingularAttributeImpl.java | 3 +- .../entity/AbstractEntityPersister.java | 24 +++------ .../entity/EntityPropertyMapping.java | 19 +++---- .../entity/JoinedSubclassEntityPersister.java | 3 +- .../entity/mutation/AttributeAnalysis.java | 2 +- .../org/hibernate/proxy/HibernateProxy.java | 3 +- .../query/common/FetchClauseType.java | 2 +- .../hql/internal/SqmPathRegistryImpl.java | 3 +- .../hql/internal/SqmTreeCreationHelper.java | 3 +- .../internal/QueryParameterBindingsImpl.java | 3 +- .../internal/ScrollableResultsIterator.java | 2 +- .../query/results/internal/Builders.java | 9 ++-- .../dynamic/DynamicFetchBuilderStandard.java | 2 +- .../java/org/hibernate/query/spi/Limit.java | 35 +++++-------- .../query/sqm/function/FunctionRenderer.java | 2 +- .../MultipatternSqmFunctionDescriptor.java | 2 +- .../sqm/internal/KeyBasedPagination.java | 4 +- .../sqm/internal/SqmCriteriaNodeBuilder.java | 12 ++--- .../sqm/internal/SqmMappingModelHelper.java | 12 ++--- .../sqm/internal/SqmSelectionQueryImpl.java | 8 +-- .../query/sqm/spi/SqmCreationHelper.java | 3 +- .../sql/AggregateColumnAssignmentHandler.java | 3 +- .../sqm/sql/BaseSqmToSqlAstConverter.java | 10 ++-- .../query/sqm/sql/FromClauseIndex.java | 3 +- .../AnyDiscriminatorPathInterpretation.java | 3 +- .../BasicValuedPathInterpretation.java | 3 +- .../EntityValuedPathInterpretation.java | 12 ++--- .../SqlAstQueryPartProcessingStateImpl.java | 3 +- .../internal/SqmParameterInterpretation.java | 3 +- .../sqm/tree/domain/SqmPluralPartJoin.java | 2 +- .../tree/domain/SqmTreatedPluralPartJoin.java | 6 +-- .../tree/expression/AbstractSqmParameter.java | 4 +- .../tree/expression/SqmExpressionHelper.java | 3 +- .../sqm/tree/expression/SqmFieldLiteral.java | 2 +- .../sqm/tree/expression/SqmParameter.java | 6 +-- .../query/sqm/tree/from/SqmRoot.java | 2 +- .../tree/predicate/SqmJunctionPredicate.java | 3 +- .../query/sqm/tree/select/SqmQueryGroup.java | 12 ++--- .../query/sqm/tree/select/SqmQuerySpec.java | 24 +++------ .../sqm/tree/select/SqmSortSpecification.java | 3 +- .../query/sqm/tree/select/SqmSubQuery.java | 5 +- .../AnonymousTupleEntityValuedModelPart.java | 7 +-- .../AbstractLogicalConnectionImplementor.java | 2 +- .../DdlTransactionIsolatorJtaImpl.java | 2 +- .../result/internal/OutputsImpl.java | 2 +- .../org/hibernate/sql/ast/SqlTreePrinter.java | 13 ++--- .../sql/ast/internal/TableGroupHelper.java | 6 +-- .../sql/ast/spi/AbstractSqlAstTranslator.java | 10 +--- .../sql/ast/spi/AbstractSqlAstWalker.java | 6 +-- .../sql/ast/spi/AggregateFunctionChecker.java | 3 +- .../sql/ast/spi/SqlAstTreeHelper.java | 3 +- .../sql/ast/tree/cte/CteMaterialization.java | 2 +- .../sql/ast/tree/cte/CteSearchClauseKind.java | 2 +- .../hibernate/sql/ast/tree/cte/CteTable.java | 2 +- .../sql/ast/tree/expression/ExtractUnit.java | 4 +- .../tree/expression/TrimSpecification.java | 2 +- .../sql/ast/tree/from/LazyTableGroup.java | 2 +- .../StandardJdbcMutationExecutor.java | 3 +- .../sql/exec/spi/JdbcLockStrategy.java | 2 +- .../exec/spi/JdbcOperationQuerySelect.java | 34 +++++-------- .../sql/exec/spi/JdbcParametersList.java | 22 ++++---- .../graph/DomainResultCreationState.java | 2 +- .../sql/results/graph/Initializer.java | 2 +- .../EmbeddableForeignKeyResultImpl.java | 3 +- ...ggregatedIdentifierMappingInitializer.java | 5 +- .../EntityDelayedFetchInitializer.java | 7 +-- .../sql/results/graph/tuple/TupleResult.java | 2 +- ...eInformationExtractorTiDBDatabaseImpl.java | 4 +- .../spi/NameSpaceTablesInformation.java | 2 +- .../exec/ScriptTargetOutputToStdout.java | 2 +- .../internal/script/SqlScriptVisitor.java | 3 +- .../main/java/org/hibernate/type/AnyType.java | 3 +- .../java/org/hibernate/type/TypeHelper.java | 3 +- .../java/spi/CollectionJavaType.java | 6 +-- .../descriptor/java/spi/JavaTypeRegistry.java | 3 +- .../type/descriptor/jdbc/ArrayJdbcType.java | 3 +- .../descriptor/jdbc/spi/JdbcTypeRegistry.java | 3 +- .../type/format/jaxb/JaxbXmlFormatMapper.java | 4 +- .../type/internal/ParameterizedTypeImpl.java | 3 +- 223 files changed, 544 insertions(+), 851 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/DuplicateMappingException.java b/hibernate-core/src/main/java/org/hibernate/DuplicateMappingException.java index 8a81e6e673ad..172eb39408dd 100644 --- a/hibernate-core/src/main/java/org/hibernate/DuplicateMappingException.java +++ b/hibernate-core/src/main/java/org/hibernate/DuplicateMappingException.java @@ -15,7 +15,7 @@ public class DuplicateMappingException extends MappingException { /** * Enumeration of the types of things that can be duplicated. */ - public static enum Type { + public enum Type { /** * A duplicate entity definition was encountered. */ diff --git a/hibernate-core/src/main/java/org/hibernate/action/internal/AbstractEntityInsertAction.java b/hibernate-core/src/main/java/org/hibernate/action/internal/AbstractEntityInsertAction.java index 40addfbe076c..06ef212b7b4c 100644 --- a/hibernate-core/src/main/java/org/hibernate/action/internal/AbstractEntityInsertAction.java +++ b/hibernate-core/src/main/java/org/hibernate/action/internal/AbstractEntityInsertAction.java @@ -213,7 +213,7 @@ private void addCollectionKey( PersistenceContext persistenceContext) { if ( o instanceof PersistentCollection ) { final CollectionPersister collectionPersister = pluralAttributeMapping.getCollectionDescriptor(); - final Object key = ( (AbstractEntityPersister) getPersister() ).getCollectionKey( + final Object key = AbstractEntityPersister.getCollectionKey( collectionPersister, getInstance(), persistenceContext.getEntry( getInstance() ), diff --git a/hibernate-core/src/main/java/org/hibernate/binder/internal/BatchSizeBinder.java b/hibernate-core/src/main/java/org/hibernate/binder/internal/BatchSizeBinder.java index effc48fd46fa..7c2085b4fc05 100644 --- a/hibernate-core/src/main/java/org/hibernate/binder/internal/BatchSizeBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/binder/internal/BatchSizeBinder.java @@ -37,8 +37,7 @@ public void bind(BatchSize batchSize, MetadataBuildingContext context, Component @Override public void bind(BatchSize batchSize, MetadataBuildingContext context, PersistentClass persistentClass, Property property) { final Value value = property.getValue(); - if ( value instanceof Collection ) { - final Collection collection = (Collection) value; + if ( value instanceof Collection collection ) { collection.setBatchSize( batchSize.size() ); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/binder/internal/CommentBinder.java b/hibernate-core/src/main/java/org/hibernate/binder/internal/CommentBinder.java index a426eb2f8c8e..1f11caeec737 100644 --- a/hibernate-core/src/main/java/org/hibernate/binder/internal/CommentBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/binder/internal/CommentBinder.java @@ -34,8 +34,7 @@ public void bind(Comment comment, MetadataBuildingContext context, PersistentCla throw new AnnotationException( "One to many association '" + property.getName() + "' was annotated '@Comment'"); } - else if ( value instanceof Collection ) { - Collection collection = (Collection) value; + else if ( value instanceof Collection collection ) { Table table = collection.getTable(); // by default, the comment goes on the table if ( on.isEmpty() || table.getName().equalsIgnoreCase( on ) ) { diff --git a/hibernate-core/src/main/java/org/hibernate/binder/internal/DiscriminatorOptionsBinder.java b/hibernate-core/src/main/java/org/hibernate/binder/internal/DiscriminatorOptionsBinder.java index f837b46ea69e..0cf8ede6fe07 100644 --- a/hibernate-core/src/main/java/org/hibernate/binder/internal/DiscriminatorOptionsBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/binder/internal/DiscriminatorOptionsBinder.java @@ -22,8 +22,7 @@ public class DiscriminatorOptionsBinder implements TypeBinder { @Override public void bind(DiscriminatorOptions options, MetadataBuildingContext context, PersistentClass persistentClass) { - if ( persistentClass instanceof RootClass ) { - final RootClass rootClass = (RootClass) persistentClass; + if ( persistentClass instanceof RootClass rootClass ) { if ( !rootClass.hasDiscriminator() ) { throw new AnnotationException( "Root entity '" + rootClass.getEntityName() + "' is annotated '@DiscriminatorOptions' but has no discriminator column" ); diff --git a/hibernate-core/src/main/java/org/hibernate/boot/MetadataSources.java b/hibernate-core/src/main/java/org/hibernate/boot/MetadataSources.java index 916ef20c4e6f..1ce8a217cfb2 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/MetadataSources.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/MetadataSources.java @@ -632,8 +632,8 @@ public MetadataSources addJar(File jar) { * processing the contained mapping documents. */ public MetadataSources addDirectory(File dir) { - File[] files = dir.listFiles(); - if ( files != null && files.length > 0 ) { + final File[] files = dir.listFiles(); + if ( files != null ) { for ( File file : files ) { if ( file.isDirectory() ) { addDirectory( file ); diff --git a/hibernate-core/src/main/java/org/hibernate/boot/cfgxml/spi/LoadedConfig.java b/hibernate-core/src/main/java/org/hibernate/boot/cfgxml/spi/LoadedConfig.java index 8958711c3ba3..f04d55b7b7be 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/cfgxml/spi/LoadedConfig.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/cfgxml/spi/LoadedConfig.java @@ -143,8 +143,7 @@ private void addMappingReference(MappingReference mappingReference) { } private static CacheRegionDefinition parseCacheRegionDefinition(Object cacheDeclaration) { - if ( cacheDeclaration instanceof JaxbCfgEntityCacheType ) { - final JaxbCfgEntityCacheType jaxbClassCache = (JaxbCfgEntityCacheType) cacheDeclaration; + if ( cacheDeclaration instanceof JaxbCfgEntityCacheType jaxbClassCache ) { return new CacheRegionDefinition( CacheRegionDefinition.CacheRegionType.ENTITY, jaxbClassCache.getClazz(), diff --git a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/Origin.java b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/Origin.java index f6e1427e077b..c775e895065e 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/Origin.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/Origin.java @@ -49,13 +49,11 @@ public boolean equals(Object o) { if ( this == o ) { return true; } - if ( !( o instanceof Origin ) ) { + if ( !(o instanceof Origin other) ) { return false; } - - final Origin other = (Origin) o; return type == other.type - && Objects.equals( name, other.name ); + && Objects.equals( name, other.name ); } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java index 842ca4feb8cb..c9dad9336599 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java @@ -1914,7 +1914,7 @@ else if ( source instanceof JaxbHbmMapType map ) { } target.setOrderBy( map.getOrderBy() ); - transferMapKey( (JaxbHbmMapType) source, target ); + transferMapKey( map, target ); target.setClassification( LimitedCollectionClassification.MAP ); } else if ( source instanceof JaxbHbmIdBagCollectionType ) { diff --git a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/JpaOrmXmlEventReader.java b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/JpaOrmXmlEventReader.java index e1c94e203632..8bd3a8ff4575 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/JpaOrmXmlEventReader.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/JpaOrmXmlEventReader.java @@ -81,7 +81,7 @@ private StartElement wrap(StartElement startElement) { // so that the event we ask it to generate for us has the same location info xmlEventFactory.setLocation( startElement.getLocation() ); return xmlEventFactory.createStartElement( - new QName( MappingXsdSupport.INSTANCE.latestJpaDescriptor().getNamespaceUri(), startElement.getName().getLocalPart() ), + new QName( MappingXsdSupport.latestJpaDescriptor().getNamespaceUri(), startElement.getName().getLocalPart() ), newElementAttributeList.iterator(), newNamespaceList.iterator() ); @@ -100,7 +100,6 @@ private List mapAttributes(StartElement startElement) { return mappedAttributes; } - @SuppressWarnings("unchecked") private Iterator existingXmlAttributesIterator(StartElement startElement) { return startElement.getAttributes(); } @@ -143,13 +142,12 @@ private List mapNamespaces(Iterator originalNamespaceItera } if ( mappedNamespaces.isEmpty() ) { - mappedNamespaces.add( xmlEventFactory.createNamespace( MappingXsdSupport.INSTANCE.latestJpaDescriptor().getNamespaceUri() ) ); + mappedNamespaces.add( xmlEventFactory.createNamespace( MappingXsdSupport.latestJpaDescriptor().getNamespaceUri() ) ); } return mappedNamespaces; } - @SuppressWarnings("unchecked") private Iterator existingXmlNamespacesIterator(StartElement startElement) { return startElement.getNamespaces(); } @@ -159,7 +157,7 @@ private Namespace mapNamespace(Namespace originalNamespace) { // this is a namespace "to map" so map it return xmlEventFactory.createNamespace( originalNamespace.getPrefix(), - MappingXsdSupport.INSTANCE.latestJpaDescriptor().getNamespaceUri() + MappingXsdSupport.latestJpaDescriptor().getNamespaceUri() ); } @@ -173,12 +171,11 @@ private XMLEvent wrap(EndElement endElement) { // so that the event we ask it to generate for us has the same location info xmlEventFactory.setLocation( endElement.getLocation() ); return xmlEventFactory.createEndElement( - new QName( MappingXsdSupport.INSTANCE.latestJpaDescriptor().getNamespaceUri(), endElement.getName().getLocalPart() ), + new QName( MappingXsdSupport.latestJpaDescriptor().getNamespaceUri(), endElement.getName().getLocalPart() ), targetNamespaces.iterator() ); } - @SuppressWarnings("unchecked") private Iterator existingXmlNamespacesIterator(EndElement endElement) { return endElement.getNamespaces(); } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/LocalXmlResourceResolver.java b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/LocalXmlResourceResolver.java index 9ea7c51ba36f..adc1cedc9534 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/LocalXmlResourceResolver.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/LocalXmlResourceResolver.java @@ -210,10 +210,8 @@ public boolean matches(String publicId, String systemId) { } if ( systemId != null ) { - if ( systemId.startsWith( httpBase ) - || systemId.startsWith( httpsBase ) ) { - return true; - } + return systemId.startsWith( httpBase ) + || systemId.startsWith( httpsBase ); } return false; diff --git a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/XMLStreamConstantsUtils.java b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/XMLStreamConstantsUtils.java index c302954e8106..c1103b6f4eeb 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/XMLStreamConstantsUtils.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/jaxb/internal/stax/XMLStreamConstantsUtils.java @@ -20,30 +20,19 @@ private XMLStreamConstantsUtils() { * Get the human readable event name for the numeric event id */ public static String getEventName(int eventId) { - switch (eventId) { - case XMLStreamConstants.START_ELEMENT: - return "StartElementEvent"; - case XMLStreamConstants.END_ELEMENT: - return "EndElementEvent"; - case XMLStreamConstants.PROCESSING_INSTRUCTION: - return "ProcessingInstructionEvent"; - case XMLStreamConstants.CHARACTERS: - return "CharacterEvent"; - case XMLStreamConstants.COMMENT: - return "CommentEvent"; - case XMLStreamConstants.START_DOCUMENT: - return "StartDocumentEvent"; - case XMLStreamConstants.END_DOCUMENT: - return "EndDocumentEvent"; - case XMLStreamConstants.ENTITY_REFERENCE: - return "EntityReferenceEvent"; - case XMLStreamConstants.ATTRIBUTE: - return "AttributeBase"; - case XMLStreamConstants.DTD: - return "DTDEvent"; - case XMLStreamConstants.CDATA: - return "CDATA"; - } - return "UNKNOWN_EVENT_TYPE"; + return switch ( eventId ) { + case XMLStreamConstants.START_ELEMENT -> "StartElementEvent"; + case XMLStreamConstants.END_ELEMENT -> "EndElementEvent"; + case XMLStreamConstants.PROCESSING_INSTRUCTION -> "ProcessingInstructionEvent"; + case XMLStreamConstants.CHARACTERS -> "CharacterEvent"; + case XMLStreamConstants.COMMENT -> "CommentEvent"; + case XMLStreamConstants.START_DOCUMENT -> "StartDocumentEvent"; + case XMLStreamConstants.END_DOCUMENT -> "EndDocumentEvent"; + case XMLStreamConstants.ENTITY_REFERENCE -> "EntityReferenceEvent"; + case XMLStreamConstants.ATTRIBUTE -> "AttributeBase"; + case XMLStreamConstants.DTD -> "DTDEvent"; + case XMLStreamConstants.CDATA -> "CDATA"; + default -> "UNKNOWN_EVENT_TYPE"; + }; } } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/IdentifierGeneratorDefinition.java b/hibernate-core/src/main/java/org/hibernate/boot/model/IdentifierGeneratorDefinition.java index f37dbe1a1916..d1007a945d3b 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/IdentifierGeneratorDefinition.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/IdentifierGeneratorDefinition.java @@ -153,11 +153,10 @@ public boolean equals(Object o) { if ( this == o ) { return true; } - if ( !( o instanceof IdentifierGeneratorDefinition ) ) { + if ( !(o instanceof IdentifierGeneratorDefinition that) ) { return false; } - IdentifierGeneratorDefinition that = (IdentifierGeneratorDefinition) o; return Objects.equals(name, that.name) && Objects.equals(strategy, that.strategy) && Objects.equals(parameters, that.parameters); diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java index 58a76561788b..247e910a52b7 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java @@ -197,8 +197,7 @@ private static void validateComponent(Component component, String basePath, bool if ( value instanceof Component c ) { validateComponent( c, qualify( basePath, property.getName() ), inArray ); } - else if ( value instanceof ToOne ) { - final ToOne toOne = (ToOne) value; + else if ( value instanceof ToOne toOne ) { if ( inArray && toOne.getReferencedPropertyName() != null ) { throw new AnnotationException( "Property '" + qualify( basePath, property.getName() ) @@ -210,8 +209,7 @@ else if ( value instanceof ToOne ) { ); } } - else if ( value instanceof Collection ) { - final Collection collection = (Collection) value; + else if ( value instanceof Collection collection ) { if ( inArray && collection.getMappedByProperty() != null ) { throw new AnnotationException( "Property '" + qualify( basePath, property.getName() ) @@ -310,8 +308,7 @@ else if ( component.getInstantiatorPropertyNames() != null ) { } private static void addColumns(ArrayList orderedColumns, Value value) { - if ( value instanceof Component ) { - final Component subComponent = (Component) value; + if ( value instanceof Component subComponent ) { if ( subComponent.getAggregateColumn() == null ) { for ( Property property : subComponent.getProperties() ) { addColumns( orderedColumns, property.getValue() ); @@ -329,8 +326,7 @@ private static void addColumns(ArrayList orderedColumns, Value value) { private static boolean addColumns(ArrayList orderedColumns, Component component, String structColumnName) { for ( Property property : component.getProperties() ) { final Value value = property.getValue(); - if ( value instanceof Component ) { - final Component subComponent = (Component) value; + if ( value instanceof Component subComponent ) { if ( subComponent.getAggregateColumn() == null ) { if ( addColumns( orderedColumns, subComponent, structColumnName ) ) { return true; @@ -363,8 +359,7 @@ else if ( structColumnName.equals( subComponent.getAggregateColumn().getName() ) private void validateSupportedColumnTypes(String basePath, Component component) { for ( Property property : component.getProperties() ) { final Value value = property.getValue(); - if ( value instanceof Component ) { - final Component subComponent = (Component) value; + if ( value instanceof Component subComponent ) { if ( subComponent.getAggregateColumn() == null ) { validateSupportedColumnTypes( qualify( basePath, property.getName() ), subComponent ); } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java index 120df0828a9d..66e929de11e5 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java @@ -238,9 +238,8 @@ Property resolveMapsId() { final PersistentClass persistentClass = getPropertyHolder().getPersistentClass(); final KeyValue identifier = persistentClass.getIdentifier(); try { - if ( identifier instanceof Component) { + if ( identifier instanceof Component embeddedIdType ) { // an @EmbeddedId - final Component embeddedIdType = (Component) identifier; return embeddedIdType.getProperty( getMapsId() ); } else { @@ -606,7 +605,7 @@ public Identifier getReferencedColumnName() { ); } final Selectable selectable = value.getSelectables().get( 0 ); - if ( !( selectable instanceof Column ) ) { + if ( !(selectable instanceof Column column) ) { throw new AnnotationException( String.format( Locale.ENGLISH, @@ -628,7 +627,6 @@ public Identifier getReferencedColumnName() { ) ); } - final Column column = (Column) selectable; return column.getNameIdentifier( getBuildingContext() ); } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/EntityBinder.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/EntityBinder.java index 9bcec914bcff..5d7f69d4ae31 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/EntityBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/EntityBinder.java @@ -6,6 +6,7 @@ import java.lang.annotation.Annotation; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -2299,9 +2300,7 @@ private void bindFiltersInHierarchy() { private void bindFilters(AnnotationTarget element) { final Filters filters = getOverridableAnnotation( element, Filters.class, context ); if ( filters != null ) { - for ( Filter filter : filters.value() ) { - this.filters.add( filter ); - } + Collections.addAll( this.filters, filters.value() ); } final Filter filter = element.getDirectAnnotationUsage( Filter.class ); if ( filter != null ) { diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/GeneratorAnnotationHelper.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/GeneratorAnnotationHelper.java index 2dc945218bc9..970ec96ec494 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/GeneratorAnnotationHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/GeneratorAnnotationHelper.java @@ -273,8 +273,8 @@ public static void prepareForUse( } collectBaselineProperties( creationContext.getProperty() != null - ? (SimpleValue) creationContext.getProperty().getValue() - : (SimpleValue) creationContext.getPersistentClass().getIdentifierProperty().getValue(), + ? creationContext.getProperty().getValue() + : creationContext.getPersistentClass().getIdentifierProperty().getValue(), creationContext.getDatabase().getDialect(), creationContext.getRootClass(), properties::setProperty, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/InferredBasicValueResolver.java b/hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/InferredBasicValueResolver.java index 92fea4c9e532..31e52185071c 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/InferredBasicValueResolver.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/InferredBasicValueResolver.java @@ -144,8 +144,7 @@ else if ( explicitJdbcType != null ) { // see if there is a registered BasicType for this JavaType and, // if so, use it. This mimics the legacy handling. final BasicType registeredType; - if ( reflectedJtd instanceof BasicPluralJavaType ) { - final BasicPluralJavaType containerJtd = (BasicPluralJavaType) reflectedJtd; + if ( reflectedJtd instanceof BasicPluralJavaType containerJtd ) { final JavaType elementJtd = containerJtd.getElementJavaType(); final BasicType registeredElementType; if ( elementJtd instanceof EnumJavaType ) { @@ -242,8 +241,7 @@ else if ( reflectedJtd instanceof SerializableJavaType // NOTE : yes it's an odd case, but easy to implement here, so... Integer length = null; Integer scale = null; - if ( selectable instanceof Column ) { - final Column column = (Column) selectable; + if ( selectable instanceof Column column ) { if ( column.getPrecision() != null && column.getPrecision() > 0 ) { length = column.getPrecision(); scale = column.getScale(); @@ -301,8 +299,7 @@ public static BasicType resolveSqlTypeIndicators( JdbcTypeIndicators stdIndicators, BasicType resolved, JavaType domainJtd) { - if ( resolved instanceof AdjustableBasicType ) { - final AdjustableBasicType indicatorCapable = (AdjustableBasicType) resolved; + if ( resolved instanceof AdjustableBasicType indicatorCapable ) { final BasicType indicatedType = indicatorCapable.resolveIndicatedType( stdIndicators, domainJtd ); return indicatedType != null ? indicatedType : resolved; } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/ManagedResourcesImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/ManagedResourcesImpl.java index dff30ada5609..de2638a83ea0 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/ManagedResourcesImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/ManagedResourcesImpl.java @@ -48,7 +48,6 @@ public static ManagedResourcesImpl baseline(MetadataSources sources, BootstrapCo return impl; } - @SuppressWarnings({ "rawtypes", "unchecked" }) private static void handleXmlMappings( MetadataSources sources, ManagedResourcesImpl impl, @@ -61,7 +60,7 @@ private static void handleXmlMappings( ); return; } - impl.mappingFileBindings.addAll( (List) sources.getXmlBindings() ); + impl.mappingFileBindings.addAll( sources.getXmlBindings() ); } public ManagedResourcesImpl() { diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/OverriddenMappingDefaults.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/OverriddenMappingDefaults.java index c9f087d46dd0..994b18505461 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/OverriddenMappingDefaults.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/OverriddenMappingDefaults.java @@ -151,7 +151,7 @@ public static class Builder { private String implicitDiscriminatorColumnName; private String implicitPackageName; private boolean autoImportEnabled; - private EnumSet implicitCascadeTypes; + private final EnumSet implicitCascadeTypes; private jakarta.persistence.AccessType implicitPropertyAccessType; private String implicitPropertyAccessorName; private boolean entitiesImplicitlyLazy; diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractEntitySourceImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractEntitySourceImpl.java index 6c1d56719749..d311ebda1706 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractEntitySourceImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractEntitySourceImpl.java @@ -57,7 +57,7 @@ public abstract class AbstractEntitySourceImpl private final AttributeRole attributeRoleBase; private final AttributePath attributePathBase; - private List subclassEntitySources = new ArrayList<>(); + private final List subclassEntitySources = new ArrayList<>(); private int inLineViewCount = 0; @@ -114,8 +114,7 @@ public static EntityNamingSourceImpl extractEntityNamingSource( private FilterSource[] buildFilterSources() { //todo for now, i think all EntityElement should support this. - if ( jaxbEntityMapping() instanceof JaxbHbmRootEntityType ) { - final JaxbHbmRootEntityType jaxbClassElement = (JaxbHbmRootEntityType) jaxbEntityMapping(); + if ( jaxbEntityMapping() instanceof JaxbHbmRootEntityType jaxbClassElement ) { final int size = jaxbClassElement.getFilter().size(); if ( size == 0 ) { return NO_FILTER_SOURCES; diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractPluralAttributeSourceImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractPluralAttributeSourceImpl.java index 86797c5ce989..75148be66549 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractPluralAttributeSourceImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractPluralAttributeSourceImpl.java @@ -96,8 +96,7 @@ protected AbstractPluralAttributeSourceImpl( .filter( (JaxbHbmRootEntityType entityType) -> childClass.equals( entityType.getName() ) ) .flatMap( jaxbHbmRootEntityType -> jaxbHbmRootEntityType.getAttributes().stream() ) .filter( attribute -> { - if ( attribute instanceof JaxbHbmManyToOneType ) { - JaxbHbmManyToOneType manyToOneType = (JaxbHbmManyToOneType) attribute; + if ( attribute instanceof JaxbHbmManyToOneType manyToOneType ) { String manyToOneTypeClass = manyToOneType.getClazz(); String containerClass = container.getAttributeRoleBase().getFullPath(); // Consider many to ones that have no class defined or equal the owner class of the one to many diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractSingularAttributeSourceEmbeddedImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractSingularAttributeSourceEmbeddedImpl.java index 00d83f32a548..88402c503d6a 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractSingularAttributeSourceEmbeddedImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AbstractSingularAttributeSourceEmbeddedImpl.java @@ -29,7 +29,7 @@ public abstract class AbstractSingularAttributeSourceEmbeddedImpl private final EmbeddedAttributeMapping jaxbEmbeddedAttributeMapping; private final EmbeddableSource embeddableSource; - private NaturalIdMutability naturalIdMutability; + private final NaturalIdMutability naturalIdMutability; protected AbstractSingularAttributeSourceEmbeddedImpl( final MappingDocument sourceMappingDocument, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AuxiliaryDatabaseObjectBinder.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AuxiliaryDatabaseObjectBinder.java index 0931ca9f1aaa..f07f12f97b30 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AuxiliaryDatabaseObjectBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/AuxiliaryDatabaseObjectBinder.java @@ -58,9 +58,7 @@ public static void processAuxiliaryDatabaseObject( } if ( !auxDbObjectMapping.getDialectScope().isEmpty() ) { - if ( auxDbObject instanceof AuxiliaryDatabaseObject.Expandable ) { - final AuxiliaryDatabaseObject.Expandable expandable - = (AuxiliaryDatabaseObject.Expandable) auxDbObject; + if ( auxDbObject instanceof AuxiliaryDatabaseObject.Expandable expandable ) { for ( JaxbHbmDialectScopeType dialectScopeBinding : auxDbObjectMapping.getDialectScope() ) { expandable.addDialectScope( dialectScopeBinding.getName() ); } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/EntityHierarchyBuilder.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/EntityHierarchyBuilder.java index 3f63204b4022..bf373562c114 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/EntityHierarchyBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/EntityHierarchyBuilder.java @@ -137,16 +137,13 @@ private void processSubEntityElements( MappingDocument mappingDocument, JaxbHbmEntityBaseDefinition entityBinding, AbstractEntitySourceImpl container) { - if ( entityBinding instanceof JaxbHbmDiscriminatorSubclassEntityType ) { - final JaxbHbmDiscriminatorSubclassEntityType jaxbSubclass = (JaxbHbmDiscriminatorSubclassEntityType) entityBinding; + if ( entityBinding instanceof JaxbHbmDiscriminatorSubclassEntityType jaxbSubclass ) { processElements( mappingDocument, jaxbSubclass.getSubclass(), container ); } - else if ( entityBinding instanceof JaxbHbmJoinedSubclassEntityType ) { - final JaxbHbmJoinedSubclassEntityType jaxbJoinedSubclass = (JaxbHbmJoinedSubclassEntityType) entityBinding; + else if ( entityBinding instanceof JaxbHbmJoinedSubclassEntityType jaxbJoinedSubclass ) { processElements( mappingDocument, jaxbJoinedSubclass.getJoinedSubclass(), container ); } - else if ( entityBinding instanceof JaxbHbmUnionSubclassEntityType ) { - final JaxbHbmUnionSubclassEntityType jaxbUnionSubclass = (JaxbHbmUnionSubclassEntityType) entityBinding; + else if ( entityBinding instanceof JaxbHbmUnionSubclassEntityType jaxbUnionSubclass ) { processElements( mappingDocument, jaxbUnionSubclass.getUnionSubclass(), container ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/EntityHierarchySourceImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/EntityHierarchySourceImpl.java index 44ebac02055b..b1943b0affbc 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/EntityHierarchySourceImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/EntityHierarchySourceImpl.java @@ -53,7 +53,7 @@ public class EntityHierarchySourceImpl implements EntityHierarchySource { private InheritanceType hierarchyInheritanceType = InheritanceType.NO_INHERITANCE; - private Set collectedEntityNames = new HashSet<>(); + private final Set collectedEntityNames = new HashSet<>(); public EntityHierarchySourceImpl( RootEntitySourceImpl rootEntitySource, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/FetchCharacteristicsPluralAttributeImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/FetchCharacteristicsPluralAttributeImpl.java index 0acbe8de40db..f2015b254892 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/FetchCharacteristicsPluralAttributeImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/FetchCharacteristicsPluralAttributeImpl.java @@ -20,7 +20,7 @@ public class FetchCharacteristicsPluralAttributeImpl implements FetchCharacteris private final FetchStyle fetchStyle; private final Integer batchSize; - private boolean extraLazy; + private final boolean extraLazy; public FetchCharacteristicsPluralAttributeImpl( FetchTiming fetchTiming, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/FormulaImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/FormulaImpl.java index dea419cebd4f..b43c6c383dcd 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/FormulaImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/FormulaImpl.java @@ -12,7 +12,7 @@ class FormulaImpl extends AbstractHbmSourceNode implements DerivedValueSource { - private String tableName; + private final String tableName; private final String expression; FormulaImpl(MappingDocument mappingDocument, String tableName, String expression) { diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/HbmMetadataSourceProcessorImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/HbmMetadataSourceProcessorImpl.java index 00972779157b..727cf2707632 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/HbmMetadataSourceProcessorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/HbmMetadataSourceProcessorImpl.java @@ -27,11 +27,11 @@ public class HbmMetadataSourceProcessorImpl implements MetadataSourceProcessor { private static final Logger log = Logger.getLogger( HbmMetadataSourceProcessorImpl.class ); private final MetadataBuildingContext rootBuildingContext; - private Collection mappingDocuments; + private final Collection mappingDocuments; private final ModelBinder modelBinder; - private List entityHierarchies; + private final List entityHierarchies; public HbmMetadataSourceProcessorImpl( ManagedResources managedResources, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/JoinedSubclassEntitySourceImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/JoinedSubclassEntitySourceImpl.java index 42b436dfc8e1..5c5231fc557b 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/JoinedSubclassEntitySourceImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/JoinedSubclassEntitySourceImpl.java @@ -62,7 +62,7 @@ public Boolean isNullable() { this.primaryKeyJoinColumnSources = new ArrayList<>( valueSources.size() ); for ( RelationalValueSource valueSource : valueSources ) { - primaryKeyJoinColumnSources.add( ColumnSource.class.cast( valueSource ) ) ; + primaryKeyJoinColumnSources.add( (ColumnSource) valueSource ) ; } } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/RelationalObjectBinder.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/RelationalObjectBinder.java index 81cdcd0eacab..8b9b4c8c87b2 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/RelationalObjectBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/RelationalObjectBinder.java @@ -80,8 +80,7 @@ public void bindColumnsAndFormulas( boolean areColumnsNullableByDefault, ColumnNamingDelegate columnNamingDelegate) { for ( RelationalValueSource relationalValueSource : relationalValueSources ) { - if ( relationalValueSource instanceof ColumnSource ) { - final ColumnSource columnSource = (ColumnSource) relationalValueSource; + if ( relationalValueSource instanceof ColumnSource columnSource ) { bindColumn( sourceDocument, columnSource, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/RelationalValueSourceHelper.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/RelationalValueSourceHelper.java index a51201f43fbd..04e77ea38d08 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/RelationalValueSourceHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/RelationalValueSourceHelper.java @@ -323,8 +323,7 @@ else if ( CollectionHelper.isNotEmpty( columnsAndFormulasSource.getColumnOrFormu validateUseOfColumnOrFormulaNestedElements( mappingDocument, columnsAndFormulasSource ); for ( Object selectable : columnsAndFormulasSource.getColumnOrFormulaElements() ) { - if ( selectable instanceof JaxbHbmColumnType ) { - final JaxbHbmColumnType columnElement = (JaxbHbmColumnType) selectable; + if ( selectable instanceof JaxbHbmColumnType columnElement ) { result.add( new ColumnSourceImpl( mappingDocument, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularAttributeSourceBasicImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularAttributeSourceBasicImpl.java index 82dc013f098b..f6327cdfc6c2 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularAttributeSourceBasicImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularAttributeSourceBasicImpl.java @@ -35,7 +35,7 @@ class SingularAttributeSourceBasicImpl private final AttributeRole attributeRole; private final AttributePath attributePath; - private ToolingHintContext toolingHintContext; + private final ToolingHintContext toolingHintContext; SingularAttributeSourceBasicImpl( MappingDocument sourceMappingDocument, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularAttributeSourceOneToOneImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularAttributeSourceOneToOneImpl.java index 3696f86131e4..9a36fb930baf 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularAttributeSourceOneToOneImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularAttributeSourceOneToOneImpl.java @@ -44,7 +44,7 @@ class SingularAttributeSourceOneToOneImpl private final FetchCharacteristicsSingularAssociationImpl fetchCharacteristics; - private ToolingHintContext toolingHintContext; + private final ToolingHintContext toolingHintContext; SingularAttributeSourceOneToOneImpl( MappingDocument mappingDocument, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularIdentifierAttributeSourceImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularIdentifierAttributeSourceImpl.java index 05a9b017c104..f17ed4f1d075 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularIdentifierAttributeSourceImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/SingularIdentifierAttributeSourceImpl.java @@ -40,7 +40,7 @@ class SingularIdentifierAttributeSourceImpl private final AttributeRole attributeRole; private final AttributePath attributePath; - private ToolingHintContext toolingHintContext; + private final ToolingHintContext toolingHintContext; public SingularIdentifierAttributeSourceImpl( MappingDocument mappingDocument, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/FilterDefAnnotation.java b/hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/FilterDefAnnotation.java index bcff2874b384..03b9677bda77 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/FilterDefAnnotation.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/FilterDefAnnotation.java @@ -38,7 +38,7 @@ public FilterDefAnnotation(FilterDef annotation, SourceModelBuildingContext mode this.name = annotation.name(); this.defaultCondition = annotation.defaultCondition(); this.autoEnabled = annotation.autoEnabled(); - this.applyToLoadByKey = annotation.applyToLoadByKey();; + this.applyToLoadByKey = annotation.applyToLoadByKey(); this.parameters = extractJdkValue( annotation, HibernateAnnotations.FILTER_DEF, "parameters", modelContext ); } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/UuidGeneratorAnnotation.java b/hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/UuidGeneratorAnnotation.java index f5a71aa85d73..0b8caac2567a 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/UuidGeneratorAnnotation.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/models/annotations/internal/UuidGeneratorAnnotation.java @@ -15,7 +15,7 @@ @jakarta.annotation.Generated("org.hibernate.orm.build.annotations.ClassGeneratorProcessor") public class UuidGeneratorAnnotation implements UuidGenerator { private org.hibernate.annotations.UuidGenerator.Style style; - private Class algorithm; + private final Class algorithm; /** * Used in creating dynamic annotation instances (e.g. from XML) diff --git a/hibernate-core/src/main/java/org/hibernate/boot/models/xml/internal/db/JoinColumnProcessing.java b/hibernate-core/src/main/java/org/hibernate/boot/models/xml/internal/db/JoinColumnProcessing.java index ab17c373dbec..0405e5e3077a 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/models/xml/internal/db/JoinColumnProcessing.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/models/xml/internal/db/JoinColumnProcessing.java @@ -85,10 +85,7 @@ public static void applyJoinColumnsOrFormulas( List jaxbJoinColumnsOrFormulas, MutableMemberDetails memberDetails, XmlDocumentContext xmlDocumentContext) { - if ( CollectionHelper.isEmpty( jaxbJoinColumnsOrFormulas ) ) { - return; - } - else { + if ( !CollectionHelper.isEmpty( jaxbJoinColumnsOrFormulas ) ) { memberDetails.removeAnnotationUsage( JpaAnnotations.JOIN_COLUMN ); memberDetails.removeAnnotationUsage( JpaAnnotations.JOIN_COLUMNS ); final JoinColumnsOrFormulasAnnotation joinColumnsOrFormulasUsage = (JoinColumnsOrFormulasAnnotation) memberDetails.replaceAnnotationUsage( diff --git a/hibernate-core/src/main/java/org/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl.java index 09bd54f8a212..75bdf13e2769 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl.java @@ -217,9 +217,8 @@ public synchronized void destroy() { destroy( integratorServiceBinding ); if ( childRegistries != null ) { - for(ServiceRegistry serviceRegistry : childRegistries) { - if(serviceRegistry instanceof ServiceRegistryImplementor) { - ServiceRegistryImplementor serviceRegistryImplementor = (ServiceRegistryImplementor) serviceRegistry; + for ( ServiceRegistry serviceRegistry : childRegistries ) { + if ( serviceRegistry instanceof ServiceRegistryImplementor serviceRegistryImplementor ) { serviceRegistryImplementor.destroy(); } } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/StrategySelectorImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/StrategySelectorImpl.java index dbf8de8f16ac..bbf573467b02 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/StrategySelectorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/StrategySelectorImpl.java @@ -106,7 +106,7 @@ public T resolveDefaultableStrategy( Class strategy, Object strategyReference, Callable defaultResolver) { - return (T) resolveStrategy( strategy, strategyReference, defaultResolver, (StrategyCreator) STANDARD_STRATEGY_CREATOR ); + return resolveStrategy( strategy, strategyReference, defaultResolver, (StrategyCreator) STANDARD_STRATEGY_CREATOR ); } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/interceptor/EnhancementHelper.java b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/interceptor/EnhancementHelper.java index e09084f2f246..a615f1ba53f4 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/interceptor/EnhancementHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/spi/interceptor/EnhancementHelper.java @@ -56,8 +56,7 @@ public static boolean includeInBaseFetchGroup( // NOTE : we make the (potentially untrue) assumption here that // if the owner is enhanced, then all classes are enhanced.. - if ( value instanceof ToOne ) { - final ToOne toOne = (ToOne) value; + if ( value instanceof ToOne toOne ) { if ( ! toOne.isLazy() ) { // its not lazy... select it diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/BytecodeProviderImpl.java b/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/BytecodeProviderImpl.java index bd99d455d46c..abfff3795227 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/BytecodeProviderImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/BytecodeProviderImpl.java @@ -437,8 +437,7 @@ public Size apply( MethodDescription instrumentedMethod) { methodVisitor.visitVarInsn( Opcodes.ALOAD, 0 ); final Class type; - if ( getterMember instanceof Method ) { - final Method getter = (Method) getterMember; + if ( getterMember instanceof Method getter ) { type = getter.getReturnType(); methodVisitor.visitMethodInsn( getter.getDeclaringClass().isInterface() ? @@ -495,8 +494,7 @@ public Size apply( MethodDescription instrumentedMethod) { methodVisitor.visitVarInsn( Opcodes.ALOAD, 0 ); final Class type; - if ( setterMember instanceof Method ) { - final Method setter = (Method) setterMember; + if ( setterMember instanceof Method setter ) { type = setter.getParameterTypes()[0]; methodVisitor.visitVarInsn( getLoadOpCode( type ), 1 ); methodVisitor.visitMethodInsn( @@ -728,8 +726,7 @@ public Size apply( methodVisitor.visitTypeInsn( Opcodes.CHECKCAST, Type.getInternalName( clazz ) ); final Class type; - if ( getterMember instanceof Method ) { - final Method getter = (Method) getterMember; + if ( getterMember instanceof Method getter ) { type = getter.getReturnType(); methodVisitor.visitMethodInsn( getter.getDeclaringClass().isInterface() ? @@ -741,8 +738,7 @@ public Size apply( getter.getDeclaringClass().isInterface() ); } - else if ( getterMember instanceof Field ) { - final Field getter = (Field) getterMember; + else if ( getterMember instanceof Field getter ) { type = getter.getType(); methodVisitor.visitFieldInsn( Opcodes.GETFIELD, @@ -755,8 +751,7 @@ else if ( getterMember instanceof Field ) { assert getterMember instanceof ForeignPackageMember; final ForeignPackageMember foreignPackageMember = (ForeignPackageMember) getterMember; final Member underlyingMember = foreignPackageMember.getMember(); - if ( underlyingMember instanceof Method ) { - final Method getter = (Method) underlyingMember; + if ( underlyingMember instanceof Method getter ) { type = getter.getReturnType(); } else { @@ -891,19 +886,16 @@ public Size apply( ); } final Class type; - if ( setterMember instanceof Method ) { - final Method setter = (Method) setterMember; + if ( setterMember instanceof Method setter ) { type = setter.getParameterTypes()[0]; } - else if ( setterMember instanceof Field ) { - final Field field = (Field) setterMember; + else if ( setterMember instanceof Field field ) { type = field.getType(); } else { final ForeignPackageMember foreignPackageMember = (ForeignPackageMember) setterMember; final Member underlyingMember = foreignPackageMember.getMember(); - if ( underlyingMember instanceof Method ) { - final Method setter = (Method) underlyingMember; + if ( underlyingMember instanceof Method setter ) { type = setter.getParameterTypes()[0]; } else { @@ -926,8 +918,7 @@ else if ( setterMember instanceof Field ) { Type.getInternalName( type ) ); } - if ( setterMember instanceof Method ) { - final Method setter = (Method) setterMember; + if ( setterMember instanceof Method setter ) { methodVisitor.visitMethodInsn( setter.getDeclaringClass().isInterface() ? Opcodes.INVOKEINTERFACE : @@ -950,8 +941,7 @@ else if ( setterMember instanceof Field ) { } } } - else if ( setterMember instanceof Field ) { - final Field field = (Field) setterMember; + else if ( setterMember instanceof Field field ) { methodVisitor.visitFieldInsn( Opcodes.PUTFIELD, Type.getInternalName( field.getDeclaringClass() ), diff --git a/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/PassThroughInterceptor.java b/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/PassThroughInterceptor.java index a1083e8d9bff..d061aa9d7474 100644 --- a/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/PassThroughInterceptor.java +++ b/hibernate-core/src/main/java/org/hibernate/bytecode/internal/bytebuddy/PassThroughInterceptor.java @@ -6,12 +6,13 @@ import java.lang.reflect.Method; import java.util.HashMap; +import java.util.Map; import org.hibernate.proxy.ProxyConfiguration; public class PassThroughInterceptor implements ProxyConfiguration.Interceptor { - private HashMap data = new HashMap<>(); + private final Map data = new HashMap<>(); private final String proxiedClassName; public PassThroughInterceptor(String proxiedClassName) { diff --git a/hibernate-core/src/main/java/org/hibernate/cache/cfg/internal/DomainDataRegionConfigImpl.java b/hibernate-core/src/main/java/org/hibernate/cache/cfg/internal/DomainDataRegionConfigImpl.java index 28691b89c9a6..df6e5f56d2c8 100644 --- a/hibernate-core/src/main/java/org/hibernate/cache/cfg/internal/DomainDataRegionConfigImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/cache/cfg/internal/DomainDataRegionConfigImpl.java @@ -6,11 +6,9 @@ import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.Supplier; import org.hibernate.cache.cfg.spi.CollectionDataCachingConfig; import org.hibernate.cache.cfg.spi.DomainDataCachingConfig; @@ -97,7 +95,7 @@ public Builder addEntityConfig(PersistentClass bootEntityDescriptor, AccessType x -> new EntityDataCachingConfigImpl( rootEntityName, bootEntityDescriptor.isVersioned() - ? (Supplier) () -> ( (BasicType) bootEntityDescriptor.getVersion().getType() ).getJavaTypeDescriptor().getComparator() + ? () -> ( (BasicType) bootEntityDescriptor.getVersion().getType() ).getJavaTypeDescriptor().getComparator() : null, bootEntityDescriptor.isMutable(), accessType diff --git a/hibernate-core/src/main/java/org/hibernate/cache/internal/CacheKeyImplementation.java b/hibernate-core/src/main/java/org/hibernate/cache/internal/CacheKeyImplementation.java index 2034eb29013d..dd1d7371c855 100644 --- a/hibernate-core/src/main/java/org/hibernate/cache/internal/CacheKeyImplementation.java +++ b/hibernate-core/src/main/java/org/hibernate/cache/internal/CacheKeyImplementation.java @@ -122,9 +122,9 @@ else if ( other.getClass() != CacheKeyImplementation.class ) { Objects.deepEquals( this.id, o.id ); } else { - return this.id.equals( o.id ) && - entityOrRoleName.equals( o.entityOrRoleName ) && - ( this.tenantId != null ? this.tenantId.equals( o.tenantId ) : o.tenantId == null ); + return this.id.equals( o.id ) + && entityOrRoleName.equals( o.entityOrRoleName ) + && Objects.equals( this.tenantId, o.tenantId ); } } } diff --git a/hibernate-core/src/main/java/org/hibernate/cache/internal/NaturalIdCacheKey.java b/hibernate-core/src/main/java/org/hibernate/cache/internal/NaturalIdCacheKey.java index 324f2dc8af5f..fa578107c52d 100644 --- a/hibernate-core/src/main/java/org/hibernate/cache/internal/NaturalIdCacheKey.java +++ b/hibernate-core/src/main/java/org/hibernate/cache/internal/NaturalIdCacheKey.java @@ -91,12 +91,11 @@ public boolean equals(Object o) { return true; } - if ( hashCode != o.hashCode() || !( o instanceof NaturalIdCacheKey) ) { + if ( hashCode != o.hashCode() || !(o instanceof NaturalIdCacheKey other) ) { //hashCode is part of this check since it is pre-calculated and hash must match for equals to be true return false; } - final NaturalIdCacheKey other = (NaturalIdCacheKey) o; return Objects.equals( entityName, other.entityName ) && Objects.equals( tenantId, other.tenantId ) && Objects.deepEquals( this.naturalIdValues, other.naturalIdValues ); @@ -107,8 +106,7 @@ public String toString() { //Complex toString is needed as naturalIds for entities are not simply based on a single value like primary keys //the only same way to differentiate the keys is to include the disassembled values in the string. final StringBuilder toStringBuilder = new StringBuilder().append( entityName ).append( "##NaturalId[" ); - if ( naturalIdValues instanceof Object[] ) { - final Object[] values = (Object[]) naturalIdValues; + if ( naturalIdValues instanceof Object[] values ) { for ( int i = 0; i < values.length; i++ ) { toStringBuilder.append( values[ i ] ); if ( i + 1 < values.length ) { diff --git a/hibernate-core/src/main/java/org/hibernate/cache/spi/entry/StructuredCacheEntry.java b/hibernate-core/src/main/java/org/hibernate/cache/spi/entry/StructuredCacheEntry.java index 823984385ca6..68a4577282d0 100644 --- a/hibernate-core/src/main/java/org/hibernate/cache/spi/entry/StructuredCacheEntry.java +++ b/hibernate-core/src/main/java/org/hibernate/cache/spi/entry/StructuredCacheEntry.java @@ -22,7 +22,7 @@ public class StructuredCacheEntry implements CacheEntryStructure { public static final String SUBCLASS_KEY = "_subclass"; public static final String VERSION_KEY = "_version"; - private EntityPersister persister; + private final EntityPersister persister; /** * Constructs a StructuredCacheEntry strategy diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/AbstractPostgreSQLStructJdbcType.java b/hibernate-core/src/main/java/org/hibernate/dialect/AbstractPostgreSQLStructJdbcType.java index 2f4d906010e9..05cdb6dd2bd7 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/AbstractPostgreSQLStructJdbcType.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/AbstractPostgreSQLStructJdbcType.java @@ -501,8 +501,7 @@ private int deserializeStruct( else if ( string.charAt( i + 1 ) == '{' ) { // This could be a quoted array final JdbcMapping jdbcMapping = getJdbcValueSelectable( column ).getJdbcMapping(); - if ( jdbcMapping instanceof BasicPluralType ) { - final BasicPluralType pluralType = (BasicPluralType) jdbcMapping; + if ( jdbcMapping instanceof BasicPluralType pluralType ) { final ArrayList arrayList = new ArrayList<>(); //noinspection unchecked final int subEnd = deserializeArray( @@ -1002,8 +1001,7 @@ private SelectableMapping getJdbcValueSelectable(int jdbcValueSelectableIndex) { for ( int i = 0; i < size; i++ ) { final ValuedModelPart modelPart = getEmbeddedPart( embeddableMappingType, orderMapping[i] ); final MappingType mappedType = modelPart.getMappedType(); - if ( mappedType instanceof EmbeddableMappingType ) { - final EmbeddableMappingType embeddableMappingType = (EmbeddableMappingType) mappedType; + if ( mappedType instanceof EmbeddableMappingType embeddableMappingType ) { final SelectableMapping aggregateMapping = embeddableMappingType.getAggregateMapping(); if ( aggregateMapping == null ) { final SelectableMapping subSelectable = embeddableMappingType.getJdbcValueSelectable( jdbcValueSelectableIndex - count ); @@ -1402,8 +1400,7 @@ private int injectAttributeValue( final MappingType mappedType = modelPart.getMappedType(); final int jdbcValueCount; final Object rawJdbcValue = rawJdbcValues[jdbcIndex]; - if ( mappedType instanceof EmbeddableMappingType ) { - final EmbeddableMappingType embeddableMappingType = (EmbeddableMappingType) mappedType; + if ( mappedType instanceof EmbeddableMappingType embeddableMappingType ) { if ( embeddableMappingType.getAggregateMapping() != null ) { jdbcValueCount = 1; attributeValues.setAttributeValue( attributeIndex, rawJdbcValue ); @@ -1466,8 +1463,7 @@ else if ( value instanceof TemporalAccessor ) { else if ( value instanceof java.util.Calendar ) { appendAsTime( appender, (java.util.Calendar) value, jdbcTimeZone ); } - else if ( value instanceof TemporalAccessor ) { - final TemporalAccessor temporalAccessor = (TemporalAccessor) value; + else if ( value instanceof TemporalAccessor temporalAccessor ) { if ( temporalAccessor.isSupported( ChronoField.OFFSET_SECONDS ) ) { appendAsTime( appender, temporalAccessor, true, jdbcTimeZone ); } @@ -1492,8 +1488,7 @@ else if ( value instanceof TemporalAccessor ) { else if ( value instanceof java.util.Calendar ) { appendAsTimestampWithMillis( appender, (java.util.Calendar) value, jdbcTimeZone ); } - else if ( value instanceof TemporalAccessor ) { - final TemporalAccessor temporalAccessor = (TemporalAccessor) value; + else if ( value instanceof TemporalAccessor temporalAccessor ) { appendAsTimestampWithMicros( appender, temporalAccessor, temporalAccessor.isSupported( ChronoField.OFFSET_SECONDS ), jdbcTimeZone ); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/DmlTargetColumnQualifierSupport.java b/hibernate-core/src/main/java/org/hibernate/dialect/DmlTargetColumnQualifierSupport.java index abe63990d678..05da0449931b 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/DmlTargetColumnQualifierSupport.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/DmlTargetColumnQualifierSupport.java @@ -26,5 +26,5 @@ public enum DmlTargetColumnQualifierSupport { /** * No need to explicitly qualify the column. */ - NONE; + NONE } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/GroupByConstantRenderingStrategy.java b/hibernate-core/src/main/java/org/hibernate/dialect/GroupByConstantRenderingStrategy.java index a30699d79868..28d5c841ab39 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/GroupByConstantRenderingStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/GroupByConstantRenderingStrategy.java @@ -29,5 +29,5 @@ public enum GroupByConstantRenderingStrategy { /** * Renders a column reference to a dummy table e.g. `, (select 1 x) dummy` and `dummy.x` */ - COLUMN_REFERENCE; + COLUMN_REFERENCE } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/GroupBySummarizationRenderingStrategy.java b/hibernate-core/src/main/java/org/hibernate/dialect/GroupBySummarizationRenderingStrategy.java index e9ff8963b86d..193ac439de72 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/GroupBySummarizationRenderingStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/GroupBySummarizationRenderingStrategy.java @@ -21,5 +21,5 @@ public enum GroupBySummarizationRenderingStrategy { /** * Use the rollup or cube functions like specified in the SQL standard. */ - FUNCTION; + FUNCTION } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/JsonHelper.java b/hibernate-core/src/main/java/org/hibernate/dialect/JsonHelper.java index 617ff5046b5a..76594c74c14e 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/JsonHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/JsonHelper.java @@ -502,7 +502,8 @@ private static int fromString( final SelectableMapping selectable = embeddableMappingType.getJdbcValueSelectable( selectableIndex ); - if ( !( selectable.getJdbcMapping().getJdbcType() instanceof AggregateJdbcType ) ) { + if ( !( selectable.getJdbcMapping().getJdbcType() + instanceof AggregateJdbcType aggregateJdbcType) ) { throw new IllegalArgumentException( String.format( "JSON starts sub-object for a non-aggregate type at index %d. Selectable [%s] is of type [%s]", @@ -512,7 +513,6 @@ private static int fromString( ) ); } - final AggregateJdbcType aggregateJdbcType = (AggregateJdbcType) selectable.getJdbcMapping().getJdbcType(); final EmbeddableMappingType subMappingType = aggregateJdbcType.getEmbeddableMappingType(); // This encoding is only possible if the JDBC type is JSON again assert aggregateJdbcType.getJdbcTypeCode() == SqlTypes.JSON @@ -550,7 +550,7 @@ private static int fromString( selectableIndex ); final JdbcMapping jdbcMapping = selectable.getJdbcMapping(); - if ( !( jdbcMapping instanceof BasicPluralType ) ) { + if ( !(jdbcMapping instanceof BasicPluralType pluralType) ) { throw new IllegalArgumentException( String.format( "JSON starts array for a non-plural type at index %d. Selectable [%s] is of type [%s]", @@ -560,7 +560,6 @@ private static int fromString( ) ); } - final BasicPluralType pluralType = (BasicPluralType) jdbcMapping; final BasicType elementType = pluralType.getElementType(); final CustomArrayList arrayList = new CustomArrayList(); i = fromArrayString( string, returnEmbeddable, options, i, arrayList, elementType ) - 1; diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBSqlAstTranslator.java index e6ca4499af5c..0c2b83cb32ed 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/MariaDBSqlAstTranslator.java @@ -351,8 +351,7 @@ protected void renderPartitionItem(Expression expression) { if ( expression instanceof Literal ) { appendSql( "'0'" ); } - else if ( expression instanceof Summarization ) { - Summarization summarization = (Summarization) expression; + else if ( expression instanceof Summarization summarization ) { renderCommaSeparated( summarization.getGroupings() ); appendSql( " with " ); appendSql( summarization.getKind().sqlText() ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/MySQLSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/dialect/MySQLSqlAstTranslator.java index 1da63038e605..d4d818a52b60 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/MySQLSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/MySQLSqlAstTranslator.java @@ -370,8 +370,7 @@ protected void renderPartitionItem(Expression expression) { if ( expression instanceof Literal ) { appendSql( "'0'" ); } - else if ( expression instanceof Summarization ) { - Summarization summarization = (Summarization) expression; + else if ( expression instanceof Summarization summarization ) { renderCommaSeparated( summarization.getGroupings() ); appendSql( " with " ); appendSql( summarization.getKind().sqlText() ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/NullOrdering.java b/hibernate-core/src/main/java/org/hibernate/dialect/NullOrdering.java index 652b21c9b742..ca94e686aecf 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/NullOrdering.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/NullOrdering.java @@ -28,5 +28,5 @@ public enum NullOrdering { /** * Null is always ordered last. */ - LAST; + LAST } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/OracleArrayJdbcType.java b/hibernate-core/src/main/java/org/hibernate/dialect/OracleArrayJdbcType.java index b040ace0d9de..f42f62dddd12 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/OracleArrayJdbcType.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/OracleArrayJdbcType.java @@ -165,8 +165,7 @@ static String getTypeName(BasicType elementType, Dialect dialect) { } private static String converterClassName(BasicValueConverter converter) { - if ( converter instanceof JpaAttributeConverter ) { - final JpaAttributeConverter jpaConverter = (JpaAttributeConverter) converter; + if ( converter instanceof JpaAttributeConverter jpaConverter ) { return jpaConverter.getConverterJavaType().getJavaTypeClass().getSimpleName(); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/OracleBaseStructJdbcType.java b/hibernate-core/src/main/java/org/hibernate/dialect/OracleBaseStructJdbcType.java index 2f34f0e0056f..22ce7bfc196f 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/OracleBaseStructJdbcType.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/OracleBaseStructJdbcType.java @@ -73,8 +73,7 @@ public String getExtraCreateTableInfo( StringBuilder sb = null; for ( Column column : udt.getColumns() ) { final Type columnType = column.getValue().getType(); - if ( columnType instanceof JdbcMapping ) { - final JdbcMapping jdbcMapping = (JdbcMapping) columnType; + if ( columnType instanceof JdbcMapping jdbcMapping ) { final String extraCreateTableInfo = jdbcMapping.getJdbcType().getExtraCreateTableInfo( jdbcMapping.getJavaTypeDescriptor(), columnName + "." + column.getName(), diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/OracleSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/dialect/OracleSqlAstTranslator.java index 6a4c267bf153..8ab95c9e851e 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/OracleSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/OracleSqlAstTranslator.java @@ -629,8 +629,7 @@ protected void renderPartitionItem(Expression expression) { if ( expression instanceof Literal ) { appendSql( "()" ); } - else if ( expression instanceof Summarization ) { - Summarization summarization = (Summarization) expression; + else if ( expression instanceof Summarization summarization ) { appendSql( summarization.getKind().sqlText() ); appendSql( OPEN_PARENTHESIS ); renderCommaSeparated( summarization.getGroupings() ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLArrayJdbcType.java b/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLArrayJdbcType.java index 695a0631e6a0..6f934e5379a3 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLArrayJdbcType.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLArrayJdbcType.java @@ -63,9 +63,8 @@ private java.sql.Array getArray(X value, WrapperOptions options) throws SQLExcep final Object[] objects; final JdbcType elementJdbcType = arrayJdbcType.getElementJdbcType(); - if ( elementJdbcType instanceof AggregateJdbcType ) { + if ( elementJdbcType instanceof AggregateJdbcType aggregateJdbcType ) { // The PostgreSQL JDBC driver does not support arrays of structs, which contain byte[] - final AggregateJdbcType aggregateJdbcType = (AggregateJdbcType) elementJdbcType; final Object[] domainObjects = getJavaType().unwrap( value, Object[].class, diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLIntervalSecondJdbcType.java b/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLIntervalSecondJdbcType.java index b5aa756db2b5..a96a720f7d72 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLIntervalSecondJdbcType.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLIntervalSecondJdbcType.java @@ -134,8 +134,7 @@ protected X doExtract(CallableStatement statement, String name, WrapperOptions o } private Object getValue(Object value) { - if ( value instanceof PGInterval ) { - final PGInterval interval = (PGInterval) value; + if ( value instanceof PGInterval interval ) { final long seconds = ( (long) interval.getSeconds() ) + SECONDS_PER_DAY * ( (long) interval.getDays() ) + SECONDS_PER_HOUR * ( (long) interval.getHours() ) diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLSqlAstTranslator.java index 00a7c36200c1..e28e9fe64247 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLSqlAstTranslator.java @@ -283,8 +283,7 @@ protected void renderPartitionItem(Expression expression) { if ( expression instanceof Literal ) { appendSql( "()" ); } - else if ( expression instanceof Summarization ) { - Summarization summarization = (Summarization) expression; + else if ( expression instanceof Summarization summarization ) { appendSql( summarization.getKind().sqlText() ); appendSql( OPEN_PARENTHESIS ); renderCommaSeparated( summarization.getGroupings() ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/RowLockStrategy.java b/hibernate-core/src/main/java/org/hibernate/dialect/RowLockStrategy.java index b094d582309b..3058fd574eab 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/RowLockStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/RowLockStrategy.java @@ -21,5 +21,5 @@ public enum RowLockStrategy { /** * No support for specifying rows to lock. */ - NONE; + NONE } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/SQLServerSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/dialect/SQLServerSqlAstTranslator.java index 154b4a190c6d..778785a52037 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/SQLServerSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/SQLServerSqlAstTranslator.java @@ -524,8 +524,7 @@ protected void renderPartitionItem(Expression expression) { if ( expression instanceof Literal ) { appendSql( "()" ); } - else if ( expression instanceof Summarization ) { - Summarization summarization = (Summarization) expression; + else if ( expression instanceof Summarization summarization ) { renderCommaSeparated( summarization.getGroupings() ); appendSql( " with " ); appendSql( summarization.getKind().sqlText() ); @@ -562,7 +561,7 @@ protected boolean supportsRowValueConstructorSyntaxInQuantifiedPredicates() { enum OffsetFetchClauseMode { STANDARD, TOP_ONLY, - EMULATED; + EMULATED } protected void renderMergeStatement(OptionalTableUpdate optionalTableUpdate) { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/SelectItemReferenceStrategy.java b/hibernate-core/src/main/java/org/hibernate/dialect/SelectItemReferenceStrategy.java index 2e31958dd9f7..46e62a330769 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/SelectItemReferenceStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/SelectItemReferenceStrategy.java @@ -21,5 +21,5 @@ public enum SelectItemReferenceStrategy { /** * Refer to the item via its position. */ - POSITION; + POSITION } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/TiDBSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/dialect/TiDBSqlAstTranslator.java index cea64630f0e9..e9943f85da87 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/TiDBSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/TiDBSqlAstTranslator.java @@ -272,8 +272,7 @@ protected void renderPartitionItem(Expression expression) { if ( expression instanceof Literal ) { appendSql( "'0'" ); } - else if ( expression instanceof Summarization ) { - Summarization summarization = (Summarization) expression; + else if ( expression instanceof Summarization summarization ) { renderCommaSeparated( summarization.getGroupings() ); appendSql( " with " ); appendSql( summarization.getKind().sqlText() ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/OracleAggregateSupport.java b/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/OracleAggregateSupport.java index d498080d42f5..3a958f272048 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/OracleAggregateSupport.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/OracleAggregateSupport.java @@ -564,7 +564,7 @@ enum JsonSupport { MERGEPATCH, QUERY_AND_PATH, QUERY, - NONE; + NONE } interface JsonWriteExpression { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/SQLServerAggregateSupport.java b/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/SQLServerAggregateSupport.java index 149cc1cdf0aa..df4ca7cccc72 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/SQLServerAggregateSupport.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/SQLServerAggregateSupport.java @@ -342,7 +342,7 @@ protected void initializeSubExpressions( parts[parts.length - 1].getSelectableName(), new BasicJsonWriteExpression( column, - aggregateSupport.jsonCustomWriteExpression( + jsonCustomWriteExpression( customWriteExpression, column.getJdbcMapping() ) diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/InsertSubstringOverlayEmulation.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/InsertSubstringOverlayEmulation.java index 5918b63683b6..c5ed29032789 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/InsertSubstringOverlayEmulation.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/InsertSubstringOverlayEmulation.java @@ -25,6 +25,7 @@ import org.hibernate.type.StandardBasicTypes; import org.hibernate.type.spi.TypeConfiguration; +import java.util.Collections; import java.util.List; import jakarta.persistence.criteria.Expression; @@ -115,7 +116,7 @@ protected SelfRenderingSqmFunction generateSqmFunctionExpression( startPlusLength, ComparisonOperator.GREATER_THAN, lengthFunction.generateSqmExpression( - asList( string ), + Collections.singletonList( string ), intType, queryEngine ), diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/SQLServerEveryAnyEmulation.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/SQLServerEveryAnyEmulation.java index baf357a3d394..c426f7b24c40 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/SQLServerEveryAnyEmulation.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/SQLServerEveryAnyEmulation.java @@ -83,6 +83,6 @@ public void render( List sqlAstArguments, ReturnableType returnType, SqlAstTranslator walker) { - this.render( sqlAppender, sqlAstArguments, null, (ReturnableType) null, walker ); + this.render( sqlAppender, sqlAstArguments, null, null, walker ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/SqlColumn.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/SqlColumn.java index eb13c5096180..ecc25275e5cd 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/SqlColumn.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/SqlColumn.java @@ -44,12 +44,10 @@ public void render( SqlAstTranslator walker) { final SqlAstNode sqlAstNode = arguments.get(0); final ColumnReference reference; - if ( sqlAstNode instanceof Assignable ) { - final Assignable assignable = (Assignable) sqlAstNode; + if ( sqlAstNode instanceof Assignable assignable ) { reference = assignable.getColumnReferences().get(0); } - else if ( sqlAstNode instanceof Expression ) { - final Expression expression = (Expression) sqlAstNode; + else if ( sqlAstNode instanceof Expression expression ) { reference = expression.getColumnReference(); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/array/ArrayHelper.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/array/ArrayHelper.java index aa59c21936c2..3dc0a607af9a 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/array/ArrayHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/array/ArrayHelper.java @@ -9,8 +9,7 @@ public class ArrayHelper { public static boolean isNullable(Expression expression) { - if ( expression instanceof FunctionExpression ) { - final FunctionExpression functionExpression = (FunctionExpression) expression; + if ( expression instanceof FunctionExpression functionExpression ) { // An array function literal is never null return !"array".equals( functionExpression.getFunctionName() ); } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/array/OracleArrayConstructorFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/array/OracleArrayConstructorFunction.java index 257a687892b6..cfeb28e23c5f 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/array/OracleArrayConstructorFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/array/OracleArrayConstructorFunction.java @@ -32,12 +32,11 @@ public void render( ); } final DomainType type = returnType.getSqmType(); - if ( !( type instanceof BasicPluralType ) ) { + if ( !(type instanceof BasicPluralType pluralType) ) { throw new SemanticException( "Oracle array constructor emulation requires a basic plural return type, but resolved return type was: " + type ); } - final BasicPluralType pluralType = (BasicPluralType) type; final String arrayTypeName = DdlTypeHelper.getCastTypeName( pluralType, walker.getSessionFactory().getTypeConfiguration() diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/array/PostgreSQLArrayConstructorFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/array/PostgreSQLArrayConstructorFunction.java index c9d4fb319896..36daf5901262 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/array/PostgreSQLArrayConstructorFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/array/PostgreSQLArrayConstructorFunction.java @@ -34,8 +34,7 @@ public void render( String arrayTypeName = null; if ( returnType != null ) { final DomainType type = returnType.getSqmType(); - if ( type instanceof BasicPluralType ) { - final BasicPluralType pluralType = (BasicPluralType) type; + if ( type instanceof BasicPluralType pluralType ) { if ( needsArrayCasting( pluralType.getElementType() ) ) { arrayTypeName = DdlTypeHelper.getCastTypeName( returnType, diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/array/PostgreSQLArrayTrimEmulation.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/array/PostgreSQLArrayTrimEmulation.java index ea7bced4411f..61e3b8111241 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/array/PostgreSQLArrayTrimEmulation.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/array/PostgreSQLArrayTrimEmulation.java @@ -37,8 +37,7 @@ public void render( String arrayTypeName = null; if ( returnType != null ) { final DomainType type = returnType.getSqmType(); - if ( type instanceof BasicPluralType ) { - final BasicPluralType pluralType = (BasicPluralType) type; + if ( type instanceof BasicPluralType pluralType ) { if ( needsArrayCasting( pluralType.getElementType() ) ) { arrayTypeName = DdlTypeHelper.getCastTypeName( returnType, diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/DB2JsonTableFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/DB2JsonTableFunction.java index 52c139e590b1..656a022b71b4 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/DB2JsonTableFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/DB2JsonTableFunction.java @@ -326,7 +326,7 @@ private void renderColumnSelects(SqlAppender sqlAppender, JsonTableColumnsClause sqlAppender.appendSql( ") " ); sqlAppender.appendSql( existsColumnDefinition.name() ); } - else if ( columnDefinition instanceof JsonTableOrdinalityColumnDefinition ordinalityColumnDefinition) { + else if ( columnDefinition instanceof JsonTableOrdinalityColumnDefinition ordinalityColumnDefinition ) { // DB2 doesn't support the for ordinality syntax in json_table() since it has no support for array either if ( isArray ) { // If the document is an array, a series table with alias `i` is joined to emulate array support. diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/H2JsonValueFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/H2JsonValueFunction.java index b33b75ee063d..afdade7e258d 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/H2JsonValueFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/H2JsonValueFunction.java @@ -134,13 +134,12 @@ public static void renderJsonPath( for ( int i = 0; i < jsonPathElements.size(); i++ ) { final JsonPathHelper.JsonPathElement jsonPathElement = jsonPathElements.get( i ); if ( jsonPathElement instanceof JsonPathHelper.JsonAttribute attribute ) { - final String attributeName = attribute.attribute(); sqlAppender.appendSql( "." ); - sqlAppender.appendDoubleQuoteEscapedString( attributeName ); + sqlAppender.appendDoubleQuoteEscapedString( attribute.attribute() ); } - else if ( jsonPathElement instanceof JsonPathHelper.JsonParameterIndexAccess ) { + else if ( jsonPathElement instanceof JsonPathHelper.JsonParameterIndexAccess parameterIndexAccess ) { assert passingClause != null; - final String parameterName = ( (JsonPathHelper.JsonParameterIndexAccess) jsonPathElement ).parameterName(); + final String parameterName = parameterIndexAccess.parameterName(); final Expression expression = passingClause.getPassingExpressions().get( parameterName ); if ( expression == null ) { throw new QueryException( "JSON path [" + jsonPath + "] uses parameter [" + parameterName + "] that is not passed" ); @@ -180,13 +179,12 @@ static String applyJsonPath(String parentPath, boolean isColumn, boolean isJson, for ( int i = 0; i < jsonPathElements.size(); i++ ) { final JsonPathHelper.JsonPathElement jsonPathElement = jsonPathElements.get( i ); if ( jsonPathElement instanceof JsonPathHelper.JsonAttribute attribute ) { - final String attributeName = attribute.attribute(); sb.append( "." ); - QuotingHelper.appendDoubleQuoteEscapedString( sb, attributeName ); + QuotingHelper.appendDoubleQuoteEscapedString( sb, attribute.attribute() ); } - else if ( jsonPathElement instanceof JsonPathHelper.JsonParameterIndexAccess ) { + else if ( jsonPathElement instanceof JsonPathHelper.JsonParameterIndexAccess parameterIndexAccess ) { assert passingClause != null; - final String parameterName = ( (JsonPathHelper.JsonParameterIndexAccess) jsonPathElement ).parameterName(); + final String parameterName = parameterIndexAccess.parameterName(); final Expression expression = passingClause.getPassingExpressions().get( parameterName ); if ( expression == null ) { throw new QueryException( "JSON path [" + jsonPath + "] uses parameter [" + parameterName + "] that is not passed" ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/JsonObjectArgumentsValidator.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/JsonObjectArgumentsValidator.java index abc348207792..421212d601fe 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/JsonObjectArgumentsValidator.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/JsonObjectArgumentsValidator.java @@ -50,8 +50,7 @@ public void validate( : nodeType.getRelationalJavaType(); if ( !isUnknown( javaType ) ) { final DomainType domainType = key.getExpressible().getSqmType(); - if ( domainType instanceof JdbcMapping ) { - final JdbcMapping jdbcMapping = (JdbcMapping) domainType; + if ( domainType instanceof JdbcMapping jdbcMapping ) { checkArgumentType( i, functionName, @@ -79,8 +78,7 @@ public void validateSqlTypes(List arguments, String functi checkArgumentsCount( argumentsCount ); for ( int i = 0; i < argumentsCount; i += 2 ) { final SqlAstNode argument = arguments.get( i ); - if ( argument instanceof Expression ) { - final Expression expression = (Expression) argument; + if ( argument instanceof Expression expression ) { final JdbcMappingContainer expressionType = expression.getExpressionType(); if ( expressionType != null && !isUnknownExpressionType( expressionType ) ) { final JdbcMapping mapping = expressionType.getSingleJdbcMapping(); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/JsonPathHelper.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/JsonPathHelper.java index dfb670a5a0b6..7f1226c0d99e 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/JsonPathHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/JsonPathHelper.java @@ -114,9 +114,9 @@ public static void appendInlinedJsonPathIncludingPassingClause( if ( expression == null ) { throw new QueryException( "JSON path [" + jsonPath + "] uses parameter [" + parameterName + "] that is not passed" ); } - Object literalValue = walker.getLiteralValue( expression ); - if ( literalValue instanceof String ) { - appendLiteral( sqlAppender, 0, (String) literalValue ); + final Object literalValue = walker.getLiteralValue( expression ); + if ( literalValue instanceof String string ) { + appendLiteral( sqlAppender, 0, string ); } else { sqlAppender.appendSql( String.valueOf( literalValue ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/PostgreSQLJsonReplaceFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/PostgreSQLJsonReplaceFunction.java index 8eb76371893f..7465d9349bdb 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/PostgreSQLJsonReplaceFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/PostgreSQLJsonReplaceFunction.java @@ -54,8 +54,8 @@ public void render( if ( pathElement instanceof JsonPathHelper.JsonAttribute attribute ) { sqlAppender.appendSingleQuoteEscapedString( attribute.attribute() ); } - else if ( pathElement instanceof JsonPathHelper.JsonParameterIndexAccess ) { - final String parameterName = ( (JsonPathHelper.JsonParameterIndexAccess) pathElement ).parameterName(); + else if ( pathElement instanceof JsonPathHelper.JsonParameterIndexAccess jsonParameterIndexAccess ) { + final String parameterName = jsonParameterIndexAccess.parameterName(); throw new QueryException( "JSON path [" + jsonPath + "] uses parameter [" + parameterName + "] that is not passed" ); } else { @@ -66,7 +66,7 @@ else if ( pathElement instanceof JsonPathHelper.JsonParameterIndexAccess ) { separator = ','; } sqlAppender.appendSql( "]::text[]," ); - if ( value instanceof Literal && ( (Literal) value ).getLiteralValue() == null ) { + if ( value instanceof Literal literal && literal.getLiteralValue() == null ) { sqlAppender.appendSql( "null::jsonb" ); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonArrayAppendFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonArrayAppendFunction.java index e85dfae21a02..d9b9ab3f2a38 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonArrayAppendFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonArrayAppendFunction.java @@ -6,6 +6,7 @@ import java.util.List; +import org.hibernate.AssertionFailure; import org.hibernate.metamodel.model.domain.ReturnableType; import org.hibernate.sql.ast.SqlAstTranslator; import org.hibernate.sql.ast.spi.SqlAppender; @@ -49,9 +50,11 @@ public void render( if ( lastPathElement instanceof JsonPathHelper.JsonIndexAccess indexAccess ) { terminalKey = String.valueOf( indexAccess.index() ); } + else if (lastPathElement instanceof JsonPathHelper.JsonAttribute attribute) { + terminalKey = attribute.attribute(); + } else { - assert lastPathElement instanceof JsonPathHelper.JsonAttribute; - terminalKey = ( (JsonPathHelper.JsonAttribute) lastPathElement ).attribute(); + throw new AssertionFailure( "Unrecognized json path element: " + lastPathElement ); } sqlAppender.appendSql( "(select 1 from openjson(t.d," ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonExistsFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonExistsFunction.java index 98d7bdd712b0..986ddb1c83fa 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonExistsFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonExistsFunction.java @@ -6,6 +6,7 @@ import java.util.List; +import org.hibernate.AssertionFailure; import org.hibernate.QueryException; import org.hibernate.metamodel.model.domain.ReturnableType; import org.hibernate.sql.ast.SqlAstTranslator; @@ -99,9 +100,11 @@ protected void render( if ( lastPathElement instanceof JsonPathHelper.JsonIndexAccess indexAccess ) { terminalKey = String.valueOf( indexAccess.index() ); } + else if (lastPathElement instanceof JsonPathHelper.JsonAttribute attribute) { + terminalKey = attribute.attribute(); + } else { - assert lastPathElement instanceof JsonPathHelper.JsonAttribute; - terminalKey = ( (JsonPathHelper.JsonAttribute) lastPathElement ).attribute(); + throw new AssertionFailure( "Unrecognized json path element: " + lastPathElement ); } sqlAppender.appendSql( "(select 1 from openjson(" ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonInsertFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonInsertFunction.java index b13dc65464ce..0606189420f3 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonInsertFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonInsertFunction.java @@ -6,6 +6,7 @@ import java.util.List; +import org.hibernate.AssertionFailure; import org.hibernate.metamodel.model.domain.ReturnableType; import org.hibernate.sql.ast.SqlAstTranslator; import org.hibernate.sql.ast.spi.SqlAppender; @@ -48,9 +49,11 @@ public void render( if ( lastPathElement instanceof JsonPathHelper.JsonIndexAccess indexAccess ) { terminalKey = String.valueOf( indexAccess.index() ); } + else if (lastPathElement instanceof JsonPathHelper.JsonAttribute attribute) { + terminalKey = attribute.attribute(); + } else { - assert lastPathElement instanceof JsonPathHelper.JsonAttribute; - terminalKey = ( (JsonPathHelper.JsonAttribute) lastPathElement ).attribute(); + throw new AssertionFailure( "Unrecognized json path element: " + lastPathElement ); } sqlAppender.appendSql( "(select 1 from openjson(t.d," ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonQueryFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonQueryFunction.java index 6d9d83402479..28c3167d1682 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonQueryFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonQueryFunction.java @@ -103,9 +103,8 @@ private void render( final JsonPathHelper.JsonPathElement jsonPathElement = jsonPathElements.get( index ); if ( jsonPathElement instanceof JsonPathHelper.JsonAttribute attribute ) { sqlAppender.appendSql( "'strict $." ); - final String name = attribute.attribute(); - for ( int i = 0; i < name.length(); i++ ) { - final char c = name.charAt( i ); + for ( int i = 0; i < attribute.attribute().length(); i++ ) { + final char c = attribute.attribute().charAt( i ); if ( c == '\'' ) { sqlAppender.append( '\'' ); } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonReplaceFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonReplaceFunction.java index f51b361f854a..9f3466ebe980 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonReplaceFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonReplaceFunction.java @@ -6,6 +6,7 @@ import java.util.List; +import org.hibernate.AssertionFailure; import org.hibernate.metamodel.model.domain.ReturnableType; import org.hibernate.sql.ast.SqlAstTranslator; import org.hibernate.sql.ast.spi.SqlAppender; @@ -48,9 +49,11 @@ public void render( if ( lastPathElement instanceof JsonPathHelper.JsonIndexAccess indexAccess ) { terminalKey = String.valueOf( indexAccess.index() ); } + else if (lastPathElement instanceof JsonPathHelper.JsonAttribute attribute) { + terminalKey = attribute.attribute(); + } else { - assert lastPathElement instanceof JsonPathHelper.JsonAttribute; - terminalKey = ( (JsonPathHelper.JsonAttribute) lastPathElement ).attribute(); + throw new AssertionFailure( "Unrecognized json path element: " + lastPathElement ); } sqlAppender.appendSql( "(select 1 from openjson(t.d," ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonTableFunction.java b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonTableFunction.java index 1963915f165d..4c101c478676 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonTableFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/function/json/SQLServerJsonTableFunction.java @@ -5,6 +5,7 @@ package org.hibernate.dialect.function.json; import org.checkerframework.checker.nullness.qual.Nullable; +import org.hibernate.AssertionFailure; import org.hibernate.QueryException; import org.hibernate.query.sqm.tuple.internal.AnonymousTupleTableGroupProducer; import org.hibernate.sql.ast.SqlAstTranslator; @@ -166,9 +167,11 @@ else if ( columnDefinition instanceof JsonTableExistsColumnDefinition existsColu if ( lastPathElement instanceof JsonPathHelper.JsonIndexAccess indexAccess ) { terminalKey = String.valueOf( indexAccess.index() ); } + else if (lastPathElement instanceof JsonPathHelper.JsonAttribute attribute) { + terminalKey = attribute.attribute(); + } else { - assert lastPathElement instanceof JsonPathHelper.JsonAttribute; - terminalKey = ( (JsonPathHelper.JsonAttribute) lastPathElement ).attribute(); + throw new AssertionFailure( "Unrecognized json path element: " + lastPathElement ); } sqlAppender.appendSql( "coalesce((select 1 from openjson(t" ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTable.java b/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTable.java index 7c831f663844..4980b29bbd77 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTable.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTable.java @@ -224,8 +224,7 @@ public static TemporaryTable createIdTable( fkTarget.forEachSelectable( (columnIndex, selection) -> { final Selectable selectable = columnIterator.next(); - if ( selectable instanceof Column ) { - final Column column = (Column) selectable; + if ( selectable instanceof Column column ) { columns.add( new TemporaryTableColumn( temporaryTable, @@ -277,12 +276,10 @@ private static void visitPluralAttributes( BiConsumer consumer) { attributeMapping.visitSubParts( modelPart -> { - if ( modelPart instanceof PluralAttributeMapping ) { - final PluralAttributeMapping pluralAttribute = (PluralAttributeMapping) modelPart; + if ( modelPart instanceof PluralAttributeMapping pluralAttribute ) { consumer.accept( pluralAttribute, attributeName + "." + pluralAttribute.getAttributeName() ); } - else if ( modelPart instanceof EmbeddedAttributeMapping ) { - final EmbeddedAttributeMapping embeddedAttribute = (EmbeddedAttributeMapping) modelPart; + else if ( modelPart instanceof EmbeddedAttributeMapping embeddedAttribute ) { visitPluralAttributes( embeddedAttribute, attributeName + "." + embeddedAttribute.getAttributeName(), @@ -404,8 +401,7 @@ public static TemporaryTable createEntityTable( attribute.forEachSelectable( (columnIndex, selection) -> { final Selectable selectable = columnIterator.next(); - if ( selectable instanceof Column ) { - final Column column = (Column) selectable; + if ( selectable instanceof Column column ) { columns.add( new TemporaryTableColumn( temporaryTable, diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTableHelper.java b/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTableHelper.java index 83f36e68630b..3c6528f9af34 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTableHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTableHelper.java @@ -176,7 +176,7 @@ public static void cleanTemporaryTableRows( } - private static SqlExceptionHelper.WarningHandler WARNING_HANDLER = new SqlExceptionHelper.WarningHandlerLoggingSupport() { + private static final SqlExceptionHelper.WarningHandler WARNING_HANDLER = new SqlExceptionHelper.WarningHandlerLoggingSupport() { public boolean doProcess() { return log.isDebugEnabled(); } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTableKind.java b/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTableKind.java index a4a2922a7ce7..5f544423f04e 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTableKind.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTableKind.java @@ -40,5 +40,5 @@ public enum TemporaryTableKind { * or {@value org.hibernate.query.sqm.mutation.internal.temptable.GlobalTemporaryTableStrategy#DROP_ID_TABLES} are * disabled. */ - GLOBAL; + GLOBAL } diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/Cascade.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/Cascade.java index 56ffcd693644..e061e4aa877e 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/Cascade.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/Cascade.java @@ -310,9 +310,8 @@ private static void cascadeLogicalOneToOneOrphanRemoval( // We first have to extract the component object and then ask the component type // recursively to give us the value of the sub-property of that object final Type propertyType = entry.getPersister().getPropertyType( componentPath.get(0) ); - if ( propertyType instanceof ComponentType ) { + if ( propertyType instanceof ComponentType componentType ) { loadedValue = entry.getLoadedValue( componentPath.get( 0 ) ); - ComponentType componentType = (ComponentType) propertyType; if ( componentPath.size() != 1 ) { for ( int i = 1; i < componentPath.size(); i++ ) { final int subPropertyIndex = componentType.getPropertyIndex( componentPath.get( i ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryContext.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryContext.java index 316583a24339..f1703c77fe73 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryContext.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/EntityEntryContext.java @@ -48,7 +48,7 @@ public class EntityEntryContext { private static final CoreMessageLogger log = CoreLogging.messageLogger( EntityEntryContext.class ); - private transient PersistenceContext persistenceContext; + private final transient PersistenceContext persistenceContext; private transient IdentityHashMap immutableManagedEntityXref; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/ForeignKeys.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/ForeignKeys.java index fabf0aebf8d8..6946e1a5d492 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/ForeignKeys.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/ForeignKeys.java @@ -446,8 +446,7 @@ private static void collectNonNullableTransientEntities( if ( value == null ) { // do nothing } - else if ( type instanceof EntityType ) { - final EntityType entityType = (EntityType) type; + else if ( type instanceof EntityType entityType ) { if ( !isNullable && !entityType.isOneToOne() && nullifier.isNullifiable( entityType.getAssociatedEntityName(), value ) ) { @@ -459,8 +458,7 @@ else if ( type instanceof AnyType ) { nonNullableTransientEntities.add( propertyName, value ); } } - else if ( type instanceof ComponentType ) { - final ComponentType compositeType = (ComponentType) type; + else if ( type instanceof ComponentType compositeType ) { final boolean[] subValueNullability = compositeType.getPropertyNullability(); if ( subValueNullability != null ) { final String[] subPropertyNames = compositeType.getPropertyNames(); diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/ManagedTypeHelper.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/ManagedTypeHelper.java index f64c240f80f2..0f9295508a8b 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/ManagedTypeHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/ManagedTypeHelper.java @@ -98,8 +98,7 @@ public static boolean isPersistentAttributeInterceptableType(final Class type) { * @return true if and only if the entity implements {@link ManagedEntity} */ public static boolean isManagedEntity(final Object entity) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { return t.asManagedEntity() != null; } return false; @@ -109,8 +108,7 @@ public static boolean isManagedEntity(final Object entity) { * @return true if and only if the entity implements {@link HibernateProxy} */ public static boolean isHibernateProxy(final Object entity) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { return t.asHibernateProxy() != null; } return false; @@ -121,8 +119,7 @@ public static boolean isHibernateProxy(final Object entity) { * @return true if and only if the entity implements {@see PersistentAttributeInterceptable} */ public static boolean isPersistentAttributeInterceptable(final Object entity) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { return t.asPersistentAttributeInterceptable() != null; } return false; @@ -133,8 +130,7 @@ public static boolean isPersistentAttributeInterceptable(final Object entity) { * @return true if and only if the entity implements {@see SelfDirtinessTracker} */ public static boolean isSelfDirtinessTracker(final Object entity) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { return t.asSelfDirtinessTracker() != null; } return false; @@ -145,8 +141,7 @@ public static boolean isSelfDirtinessTracker(final Object entity) { * @return true if and only if the entity implements {@see CompositeOwner} */ public static boolean isCompositeOwner(final Object entity) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { return t.asCompositeOwner() != null; } return false; @@ -157,8 +152,7 @@ public static boolean isCompositeOwner(final Object entity) { * @return true if and only if the entity implements {@see CompositeTracker} */ public static boolean isCompositeTracker(final @Nullable Object entity) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { return t.asCompositeTracker() != null; } return false; @@ -188,8 +182,7 @@ public static void processIfPersistentAttributeInterceptable( final Object entity, final PersistentAttributeInterceptableAction action, final T optionalParam) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - final PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final PersistentAttributeInterceptable e = t.asPersistentAttributeInterceptable(); if ( e != null ) { action.accept( e, optionalParam ); @@ -205,8 +198,7 @@ public static void processIfPersistentAttributeInterceptable( * @param action */ public static void processIfSelfDirtinessTracker(final Object entity, final SelfDirtinessTrackerConsumer action) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - final PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final SelfDirtinessTracker e = t.asSelfDirtinessTracker(); if ( e != null ) { action.accept( e ); @@ -215,8 +207,7 @@ public static void processIfSelfDirtinessTracker(final Object entity, final Self } public static void processIfManagedEntity(final Object entity, final ManagedEntityConsumer action) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - final PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final ManagedEntity e = t.asManagedEntity(); if ( e != null ) { action.accept( e ); @@ -250,8 +241,7 @@ public static void processIfSelfDirtinessTracker( final Object entity, final SelfDirtinessTrackerAction action, final T optionalParam) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - final PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final SelfDirtinessTracker e = t.asSelfDirtinessTracker(); if ( e != null ) { action.accept( e, optionalParam ); @@ -275,8 +265,7 @@ public interface SelfDirtinessTrackerAction { */ public static PersistentAttributeInterceptable asPersistentAttributeInterceptable(final Object entity) { Objects.requireNonNull( entity ); - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final PersistentAttributeInterceptable e = t.asPersistentAttributeInterceptable(); if ( e != null ) { return e; @@ -286,8 +275,7 @@ public static PersistentAttributeInterceptable asPersistentAttributeInterceptabl } public static PersistentAttributeInterceptable asPersistentAttributeInterceptableOrNull(final Object entity) { - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { return t.asPersistentAttributeInterceptable(); } return null; @@ -302,8 +290,7 @@ public static PersistentAttributeInterceptable asPersistentAttributeInterceptabl */ public static HibernateProxy asHibernateProxy(final Object entity) { Objects.requireNonNull( entity ); - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final HibernateProxy e = t.asHibernateProxy(); if ( e != null ) { return e; @@ -321,8 +308,7 @@ public static HibernateProxy asHibernateProxy(final Object entity) { */ public static ManagedEntity asManagedEntity(final Object entity) { Objects.requireNonNull( entity ); - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final ManagedEntity e = t.asManagedEntity(); if ( e != null ) { return e; @@ -340,8 +326,7 @@ public static ManagedEntity asManagedEntity(final Object entity) { */ public static CompositeTracker asCompositeTracker(final Object entity) { Objects.requireNonNull( entity ); - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final CompositeTracker e = t.asCompositeTracker(); if ( e != null ) { return e; @@ -359,8 +344,7 @@ public static CompositeTracker asCompositeTracker(final Object entity) { */ public static CompositeOwner asCompositeOwner(final Object entity) { Objects.requireNonNull( entity ); - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final CompositeOwner e = t.asCompositeOwner(); if ( e != null ) { return e; @@ -378,8 +362,7 @@ public static CompositeOwner asCompositeOwner(final Object entity) { */ public static SelfDirtinessTracker asSelfDirtinessTracker(final Object entity) { Objects.requireNonNull( entity ); - if ( entity instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) entity; + if ( entity instanceof PrimeAmongSecondarySupertypes t ) { final SelfDirtinessTracker e = t.asSelfDirtinessTracker(); if ( e != null ) { return e; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/Nullability.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/Nullability.java index 4d4e7f98ad2d..acad8b99c135 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/Nullability.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/Nullability.java @@ -151,9 +151,8 @@ private String checkSubElementsNullability(Type propertyType, Object value) thro return checkComponentNullability( value, (ComponentType) propertyType ); } - if ( propertyType instanceof CollectionType ) { + if ( propertyType instanceof CollectionType collectionType ) { // persistent collections may have components - final CollectionType collectionType = (CollectionType) propertyType; final Type collectionElementType = collectionType.getElementType( session.getFactory() ); if ( collectionElementType instanceof ComponentType || collectionElementType instanceof AnyType ) { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/env/internal/JdbcEnvironmentImpl.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/env/internal/JdbcEnvironmentImpl.java index 8629b579dd1e..e75275618073 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/env/internal/JdbcEnvironmentImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/env/internal/JdbcEnvironmentImpl.java @@ -89,7 +89,7 @@ public JdbcEnvironmentImpl(final ServiceRegistryImplementor serviceRegistry, fin final ExtractedDatabaseMetaDataImpl.Builder metaDataBuilder = new ExtractedDatabaseMetaDataImpl.Builder( this, false, null ); - this.identifierHelper = identifierHelper( dialect, identifierHelperBuilder, metaDataBuilder );; + this.identifierHelper = identifierHelper( dialect, identifierHelperBuilder, metaDataBuilder ); this.extractedMetaDataSupport = metaDataBuilder.build(); diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/FormatStyle.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/FormatStyle.java index 009082037f9f..b3b722746360 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/FormatStyle.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/FormatStyle.java @@ -30,7 +30,7 @@ public enum FormatStyle { private final String name; private final Formatter formatter; - private FormatStyle(String name, Formatter formatter) { + FormatStyle(String name, Formatter formatter) { this.name = name; this.formatter = formatter; } diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jndi/internal/JndiServiceImpl.java b/hibernate-core/src/main/java/org/hibernate/engine/jndi/internal/JndiServiceImpl.java index 1a43e8b80015..6c1b028fc921 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jndi/internal/JndiServiceImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jndi/internal/JndiServiceImpl.java @@ -61,27 +61,26 @@ private static Hashtable extractJndiProperties(Map configura final Hashtable jndiProperties = new Hashtable<>(); for ( Map.Entry entry : configurationValues.entrySet() ) { - if ( !(entry.getKey() instanceof String) ) { - continue; - } - final String propertyName = (String) entry.getKey(); - final Object propertyValue = entry.getValue(); - if ( propertyName.startsWith( Environment.JNDI_PREFIX ) ) { - // write the InitialContextFactory class and provider url to the result only if they are - // non-null; this allows the environmental defaults (if any) to remain in effect - if ( Environment.JNDI_CLASS.equals( propertyName ) ) { - if ( propertyValue != null ) { - jndiProperties.put( Context.INITIAL_CONTEXT_FACTORY, propertyValue ); + if ( entry.getKey() instanceof String propertyName ) { + final Object propertyValue = entry.getValue(); + if ( propertyName.startsWith( Environment.JNDI_PREFIX ) ) { + // write the InitialContextFactory class and provider url to the result only if they are + // non-null; this allows the environmental defaults (if any) to remain in effect + if ( Environment.JNDI_CLASS.equals( propertyName ) ) { + if ( propertyValue != null ) { + jndiProperties.put( Context.INITIAL_CONTEXT_FACTORY, propertyValue ); + } } - } - else if ( Environment.JNDI_URL.equals( propertyName ) ) { - if ( propertyValue != null ) { - jndiProperties.put( Context.PROVIDER_URL, propertyValue ); + else if ( Environment.JNDI_URL.equals( propertyName ) ) { + if ( propertyValue != null ) { + jndiProperties.put( Context.PROVIDER_URL, propertyValue ); + } + } + else { + final String passThruPropertyName = propertyName.substring( + Environment.JNDI_PREFIX.length() + 1 ); + jndiProperties.put( passThruPropertyName, NullnessUtil.castNonNull( propertyValue ) ); } - } - else { - final String passThruPropertyName = propertyName.substring( Environment.JNDI_PREFIX.length() + 1 ); - jndiProperties.put( passThruPropertyName, NullnessUtil.castNonNull( propertyValue ) ); } } } diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java index 84bdedfb3e60..514f1c5fad44 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java @@ -75,8 +75,7 @@ private TransactionManagerAdapter() throws HibernateException { Class extendedJTATransactionClass = Class.forName( "com.ibm.websphere.jtaextensions.ExtendedJTATransaction" ); registerSynchronizationMethod = extendedJTATransactionClass.getMethod( "registerSynchronizationCallbackForCurrentTran", - new Class[] { synchronizationCallbackClass } - ); + synchronizationCallbackClass ); getLocalIdMethod = extendedJTATransactionClass.getMethod( "getLocalId", (Class[]) null ); } catch ( ClassNotFoundException cnfe ) { @@ -188,10 +187,9 @@ public int hashCode() { @Override public boolean equals(@Nullable Object other) { - if ( !(other instanceof TransactionAdapter) ) { + if ( !(other instanceof TransactionAdapter that) ) { return false; } - TransactionAdapter that = (TransactionAdapter) other; return getLocalId().equals( that.getLocalId() ); } diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereJtaPlatform.java index 9e55586a4dca..49f5baf4848c 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereJtaPlatform.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereJtaPlatform.java @@ -22,11 +22,11 @@ public class WebSphereJtaPlatform extends AbstractJtaPlatform { private static final Logger log = Logger.getLogger( WebSphereJtaPlatform.class ); - private final Class transactionManagerAccessClass; + private final Class transactionManagerAccessClass; private final WebSphereEnvironment webSphereEnvironment; public WebSphereJtaPlatform() { - Class tmAccessClass = null; + Class tmAccessClass = null; WebSphereEnvironment webSphereEnvironment = null; for ( WebSphereEnvironment check : WebSphereEnvironment.values() ) { @@ -49,13 +49,12 @@ public WebSphereJtaPlatform() { this.webSphereEnvironment = webSphereEnvironment; } - public WebSphereJtaPlatform(Class transactionManagerAccessClass, WebSphereEnvironment webSphereEnvironment) { + public WebSphereJtaPlatform(Class transactionManagerAccessClass, WebSphereEnvironment webSphereEnvironment) { this.transactionManagerAccessClass = transactionManagerAccessClass; this.webSphereEnvironment = webSphereEnvironment; } @Override - @SuppressWarnings({"unchecked"}) protected TransactionManager locateTransactionManager() { try { final Method method = transactionManagerAccessClass.getMethod( "getTransactionManager" ); @@ -73,7 +72,7 @@ protected UserTransaction locateUserTransaction() { return (UserTransaction) jndiService().locate( utName ); } - public static enum WebSphereEnvironment { + public enum WebSphereEnvironment { WS_4_0( "4.x", "com.ibm.ejs.jts.jta.JTSXA", "jta/usertransaction" ), WS_5_0( "5.0", "com.ibm.ejs.jts.jta.TransactionManagerFactory", "java:comp/UserTransaction" ), WS_5_1( "5.1", "com.ibm.ws.Transaction.TransactionManagerFactory", "java:comp/UserTransaction" ) @@ -83,7 +82,7 @@ public static enum WebSphereEnvironment { private final String tmAccessClassName; private final String utName; - private WebSphereEnvironment(String webSphereVersion, String tmAccessClassName, String utName) { + WebSphereEnvironment(String webSphereVersion, String tmAccessClassName, String utName) { this.webSphereVersion = webSphereVersion; this.tmAccessClassName = tmAccessClassName; this.utName = utName; diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/AutoFlushEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/AutoFlushEvent.java index 6b318b839a01..213790f3d10b 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/AutoFlushEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/AutoFlushEvent.java @@ -14,7 +14,7 @@ public class AutoFlushEvent extends FlushEvent { private Set querySpaces; private boolean flushRequired; - private boolean skipPreFlush; + private final boolean skipPreFlush; public AutoFlushEvent(Set querySpaces, EventSource source) { this( querySpaces, false, source ); diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/DeleteEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/DeleteEvent.java index 0e4d953bec1f..276bcd92750c 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/DeleteEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/DeleteEvent.java @@ -10,7 +10,7 @@ * @author Steve Ebersole */ public class DeleteEvent extends AbstractEvent { - private Object object; + private final Object object; private String entityName; private boolean cascadeDeleteEnabled; // TODO: The removeOrphan concept is a temporary "hack" for HHH-6484. This should be removed once action/task diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/PostInsertEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/PostInsertEvent.java index 904ed5449829..b8cb2ad1b1fa 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/PostInsertEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/PostInsertEvent.java @@ -13,10 +13,10 @@ * @author Gavin King */ public class PostInsertEvent extends AbstractEvent { - private Object entity; - private EntityPersister persister; - private Object[] state; - private Object id; + private final Object entity; + private final EntityPersister persister; + private final Object[] state; + private final Object id; public PostInsertEvent( Object entity, diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/PostUpdateEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/PostUpdateEvent.java index 866ce7d89e35..4d6c568b3866 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/PostUpdateEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/PostUpdateEvent.java @@ -13,11 +13,11 @@ * @author Gavin King */ public class PostUpdateEvent extends AbstractEvent { - private Object entity; - private EntityPersister persister; - private Object[] state; - private Object[] oldState; - private Object id; + private final Object entity; + private final EntityPersister persister; + private final Object[] state; + private final Object[] oldState; + private final Object id; //list of dirty properties as computed by Hibernate during a FlushEntityEvent private final int[] dirtyProperties; diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/PostUpsertEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/PostUpsertEvent.java index e51c04307014..29116273458d 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/PostUpsertEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/PostUpsertEvent.java @@ -13,10 +13,10 @@ * @author Gavin King */ public class PostUpsertEvent extends AbstractEvent { - private Object entity; - private EntityPersister persister; - private Object[] state; - private Object id; + private final Object entity; + private final EntityPersister persister; + private final Object[] state; + private final Object id; //list of dirty properties as computed by Hibernate during a FlushEntityEvent private final int[] dirtyProperties; diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/PreDeleteEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/PreDeleteEvent.java index 93129190be92..84f5aa4f34b3 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/PreDeleteEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/PreDeleteEvent.java @@ -16,7 +16,7 @@ */ public class PreDeleteEvent extends AbstractPreDatabaseOperationEvent { - private Object[] deletedState; + private final Object[] deletedState; /** * Constructs an event containing the pertinent information. diff --git a/hibernate-core/src/main/java/org/hibernate/generator/EventType.java b/hibernate-core/src/main/java/org/hibernate/generator/EventType.java index 3d230d8de1af..2819fb87cbf1 100644 --- a/hibernate-core/src/main/java/org/hibernate/generator/EventType.java +++ b/hibernate-core/src/main/java/org/hibernate/generator/EventType.java @@ -35,5 +35,5 @@ public enum EventType { * This indicates, for example, that a version number should be * incremented. */ - UPDATE; + UPDATE } diff --git a/hibernate-core/src/main/java/org/hibernate/id/SequenceMismatchStrategy.java b/hibernate-core/src/main/java/org/hibernate/id/SequenceMismatchStrategy.java index 34f4b1630d3c..a962899736c4 100644 --- a/hibernate-core/src/main/java/org/hibernate/id/SequenceMismatchStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/id/SequenceMismatchStrategy.java @@ -60,8 +60,7 @@ public static SequenceMismatchStrategy interpret(@Nullable Object sequenceMismat else if ( sequenceMismatchStrategy instanceof SequenceMismatchStrategy ) { return (SequenceMismatchStrategy) sequenceMismatchStrategy; } - else if ( sequenceMismatchStrategy instanceof String ) { - String sequenceMismatchStrategyString = (String) sequenceMismatchStrategy; + else if ( sequenceMismatchStrategy instanceof String sequenceMismatchStrategyString ) { for ( SequenceMismatchStrategy value : values() ) { if ( value.name().equalsIgnoreCase( sequenceMismatchStrategyString ) ) { return value; diff --git a/hibernate-core/src/main/java/org/hibernate/id/uuid/CustomVersionOneStrategy.java b/hibernate-core/src/main/java/org/hibernate/id/uuid/CustomVersionOneStrategy.java index caaaf9c950ef..c270fd1fe0fc 100644 --- a/hibernate-core/src/main/java/org/hibernate/id/uuid/CustomVersionOneStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/id/uuid/CustomVersionOneStrategy.java @@ -103,7 +103,7 @@ public static void main(String[] args) { UUID uuid = new UUID( strategy.mostSignificantBits, leastSignificantBits ); - System.out.println( " uuid : " + uuid.toString() ); + System.out.println( " uuid : " + uuid ); System.out.println( " variant : " + uuid.variant() ); System.out.println( " version : " + uuid.version() ); if ( uuid.variant() != 2 ) { diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/ExceptionHelper.java b/hibernate-core/src/main/java/org/hibernate/internal/util/ExceptionHelper.java index a7a41fb3061c..ca94f04d23fd 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/ExceptionHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/ExceptionHelper.java @@ -16,7 +16,7 @@ private ExceptionHelper() { * @param e The throwable to throw. */ public static void doThrow(Throwable e) { - ExceptionHelper.doThrow0(e); + ExceptionHelper.doThrow0(e); } public static Throwable getRootCause(Throwable error) { diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/GenericsHelper.java b/hibernate-core/src/main/java/org/hibernate/internal/util/GenericsHelper.java index 48adb8205db4..0fed03a97f7b 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/GenericsHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/GenericsHelper.java @@ -31,8 +31,7 @@ public static ParameterizedType extractParameterizedType(Type base) { for ( Type type : types ) { type = resolveType( type, base ); - if ( type instanceof ParameterizedType ) { - final ParameterizedType parameterizedType = (ParameterizedType) type; + if ( type instanceof ParameterizedType parameterizedType ) { if ( AttributeConverter.class.equals( parameterizedType.getRawType() ) ) { return parameterizedType; } diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/ImmutableBitSet.java b/hibernate-core/src/main/java/org/hibernate/internal/util/ImmutableBitSet.java index c9c195cbb443..9ec0cd791194 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/ImmutableBitSet.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/ImmutableBitSet.java @@ -60,14 +60,13 @@ public int hashCode() { @Override public boolean equals(Object obj) { - if ( !( obj instanceof ImmutableBitSet ) ) { + if ( !(obj instanceof ImmutableBitSet set) ) { return false; } if ( this == obj ) { return true; } - final ImmutableBitSet set = (ImmutableBitSet) obj; return Arrays.equals( words, set.words ); } diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/NullnessUtil.java b/hibernate-core/src/main/java/org/hibernate/internal/util/NullnessUtil.java index a39ea872a428..3617038520fd 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/NullnessUtil.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/NullnessUtil.java @@ -73,7 +73,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T castNonNull(@Nullable T ref) { assert ref != null : "Misuse of castNonNull: called with a null argument"; - return (@NonNull T) ref; + return ref; } /** @@ -91,7 +91,7 @@ private NullnessUtil() { public static @EnsuresNonNull("#1") @NonNull T castNonNull( @Nullable T ref, String message) { assert ref != null : "Misuse of castNonNull: called with a null argument: " + message; - return (@NonNull T) ref; + return ref; } /** @@ -110,7 +110,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [] castNonNullDeep( T @Nullable [] arr) { - return (@NonNull T[]) castNonNullArray( arr, null ); + return castNonNullArray( arr, null ); } /** @@ -130,7 +130,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [] castNonNullDeep( T @Nullable [] arr, String message) { - return (@NonNull T[]) castNonNullArray( arr, message ); + return castNonNullArray( arr, message ); } /** @@ -149,7 +149,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [][] castNonNullDeep( T @Nullable [] @Nullable [] arr) { - return (@NonNull T[][]) castNonNullArray( arr, null ); + return castNonNullArray( arr, null ); } /** @@ -169,7 +169,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [][] castNonNullDeep( T @Nullable [] @Nullable [] arr, String message) { - return (@NonNull T[][]) castNonNullArray( arr, message ); + return castNonNullArray( arr, message ); } /** @@ -188,7 +188,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [][][] castNonNullDeep( T @Nullable [] @Nullable [] @Nullable [] arr) { - return (@NonNull T[][][]) castNonNullArray( arr, null ); + return castNonNullArray( arr, null ); } /** @@ -208,7 +208,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [][][] castNonNullDeep( T @Nullable [] @Nullable [] @Nullable [] arr, String message) { - return (@NonNull T[][][]) castNonNullArray( arr, message ); + return castNonNullArray( arr, message ); } /** @@ -227,7 +227,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [][][][] castNonNullDeep( T @Nullable [] @Nullable [] @Nullable [] @Nullable [] arr) { - return (@NonNull T[][][][]) castNonNullArray( arr, null ); + return castNonNullArray( arr, null ); } /** @@ -247,7 +247,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [][][][] castNonNullDeep( T @Nullable [] @Nullable [] @Nullable [] @Nullable [] arr, String message) { - return (@NonNull T[][][][]) castNonNullArray( arr, message ); + return castNonNullArray( arr, message ); } /** @@ -266,7 +266,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [][][][][] castNonNullDeep( T @Nullable [] @Nullable [] @Nullable [] @Nullable [] @Nullable [] arr) { - return (@NonNull T[][][][][]) castNonNullArray( arr, null ); + return castNonNullArray( arr, null ); } /** @@ -286,7 +286,7 @@ private NullnessUtil() { @EnsuresNonNull("#1") public static @NonNull T @NonNull [][][][][] castNonNullDeep( T @Nullable [] @Nullable [] @Nullable [] @Nullable [] @Nullable [] arr, String message) { - return (@NonNull T[][][][][]) castNonNullArray( arr, message ); + return castNonNullArray( arr, message ); } /** @@ -311,7 +311,7 @@ private NullnessUtil() { + ( ( message == null ) ? "" : ( ": " + message ) ); checkIfArray( arr[i], message ); } - return (@NonNull T[]) arr; + return arr; } /** diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/collections/BoundedConcurrentHashMap.java b/hibernate-core/src/main/java/org/hibernate/internal/util/collections/BoundedConcurrentHashMap.java index 3370d0a68446..55453b8e008c 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/collections/BoundedConcurrentHashMap.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/collections/BoundedConcurrentHashMap.java @@ -2124,20 +2124,18 @@ public Iterator> iterator() { @Override public boolean contains(Object o) { - if ( !( o instanceof Map.Entry ) ) { + if ( !(o instanceof Entry e) ) { return false; } - Entry e = (Entry) o; V v = BoundedConcurrentHashMap.this.get( e.getKey() ); return v != null && v.equals( e.getValue() ); } @Override public boolean remove(Object o) { - if ( !( o instanceof Map.Entry ) ) { + if ( !(o instanceof Entry e) ) { return false; } - Entry e = (Entry) o; return BoundedConcurrentHashMap.this.remove( e.getKey(), e.getValue() ); } diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ConcurrentReferenceHashMap.java b/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ConcurrentReferenceHashMap.java index fc36f9281fd4..470a7a43269a 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ConcurrentReferenceHashMap.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ConcurrentReferenceHashMap.java @@ -20,6 +20,7 @@ import java.util.Iterator; import java.util.Map; import java.util.NoSuchElementException; +import java.util.Objects; import java.util.Set; import java.util.concurrent.locks.ReentrantLock; @@ -134,7 +135,7 @@ public class ConcurrentReferenceHashMap extends AbstractMap * An option specifying which Java reference type should be used to refer * to a key and/or value. */ - public static enum ReferenceType { + public enum ReferenceType { /** * Indicates a normal Java strong reference should be used */ @@ -150,7 +151,7 @@ public static enum ReferenceType { } - public static enum Option { + public enum Option { /** * Indicates that referential-equality (== instead of .equals()) should * be used when locating keys. This offers similar behavior to {@link java.util.IdentityHashMap} @@ -287,12 +288,12 @@ static final class WeakKeyReference extends WeakReference implements KeyRe } @Override - public final int keyHash() { + public int keyHash() { return hash; } @Override - public final Object keyRef() { + public Object keyRef() { return this; } } @@ -309,12 +310,12 @@ static final class SoftKeyReference extends SoftReference implements KeyRe } @Override - public final int keyHash() { + public int keyHash() { return hash; } @Override - public final Object keyRef() { + public Object keyRef() { return this; } } @@ -330,12 +331,12 @@ static final class WeakValueReference extends WeakReference implements Key } @Override - public final int keyHash() { + public int keyHash() { return hash; } @Override - public final Object keyRef() { + public Object keyRef() { return keyRef; } } @@ -351,12 +352,12 @@ static final class SoftValueReference extends SoftReference implements Key } @Override - public final int keyHash() { + public int keyHash() { return hash; } @Override - public final Object keyRef() { + public Object keyRef() { return keyRef; } } @@ -389,7 +390,7 @@ static final class HashEntry { this.valueRef = newValueReference( value, valueType, refQueue ); } - final Object newKeyReference( + Object newKeyReference( K key, ReferenceType keyType, ReferenceQueue refQueue) { if ( keyType == ReferenceType.WEAK ) { @@ -402,7 +403,7 @@ final Object newKeyReference( return key; } - final Object newValueReference( + Object newValueReference( V value, ReferenceType valueType, ReferenceQueue refQueue) { if ( valueType == ReferenceType.WEAK ) { @@ -416,7 +417,7 @@ final Object newValueReference( } @SuppressWarnings("unchecked") - final K key() { + K key() { if ( keyRef instanceof KeyReference ) { return ( (Reference) keyRef ).get(); } @@ -424,12 +425,12 @@ final K key() { return (K) keyRef; } - final V value() { + V value() { return dereferenceValue( valueRef ); } @SuppressWarnings("unchecked") - final V dereferenceValue(Object value) { + V dereferenceValue(Object value) { if ( value instanceof KeyReference ) { return ( (Reference) value ).get(); } @@ -437,12 +438,12 @@ final V dereferenceValue(Object value) { return (V) value; } - final void setValue(V value, ReferenceType valueType, ReferenceQueue refQueue) { + void setValue(V value, ReferenceType valueType, ReferenceQueue refQueue) { this.valueRef = newValueReference( value, valueType, refQueue ); } @SuppressWarnings("unchecked") - static final HashEntry[] newArray(int i) { + static HashEntry[] newArray(int i) { return new HashEntry[i]; } } @@ -551,7 +552,7 @@ static final class Segment extends ReentrantLock implements Serializable { } @SuppressWarnings("unchecked") - static final Segment[] newArray(int i) { + static Segment[] newArray(int i) { return new Segment[i]; } @@ -861,7 +862,7 @@ V remove(Object key, int hash, Object value, boolean refRemove) { } } - final void removeStale() { + void removeStale() { KeyReference ref; while ( ( ref = (KeyReference) refQueue.poll() ) != null ) { remove( ref.keyRef(), ref.keyHash(), null, true ); @@ -1675,11 +1676,9 @@ public V setValue(V value) { @Override public boolean equals(Object o) { - if ( !( o instanceof Map.Entry ) ) { + if ( !(o instanceof @SuppressWarnings("unchecked")Entry e) ) { return false; } - @SuppressWarnings("unchecked") - Entry e = (Entry) o; return eq( key, e.getKey() ) && eq( value, e.getValue() ); } @@ -1695,7 +1694,7 @@ public String toString() { } private static boolean eq(Object o1, Object o2) { - return o1 == null ? o2 == null : o1.equals( o2 ); + return Objects.equals( o1, o2 ); } } @@ -1808,20 +1807,18 @@ public Iterator> iterator() { @Override public boolean contains(Object o) { - if ( !( o instanceof Map.Entry ) ) { + if ( !(o instanceof Entry e) ) { return false; } - Entry e = (Entry) o; V v = ConcurrentReferenceHashMap.this.get( e.getKey() ); return v != null && v.equals( e.getValue() ); } @Override public boolean remove(Object o) { - if ( !( o instanceof Map.Entry ) ) { + if ( !(o instanceof Entry e) ) { return false; } - Entry e = (Entry) o; return ConcurrentReferenceHashMap.this.remove( e.getKey(), e.getValue() ); } diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ReadOnlyMap.java b/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ReadOnlyMap.java index cc51d01b919e..2e47f8645a11 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ReadOnlyMap.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/collections/ReadOnlyMap.java @@ -7,7 +7,7 @@ public interface ReadOnlyMap { //To help saving memory - public static final ReadOnlyMap EMPTY = new EmptyReadOnlyMap(); + ReadOnlyMap EMPTY = new EmptyReadOnlyMap(); /** * The main operation. diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java index f8669bdb9539..5c52ad61fda9 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java @@ -169,18 +169,16 @@ public static class Builder { private final Map, Callback[]> postLoads = new HashMap<>(); public void registerCallbacks(Class entityClass, Callback[] callbacks) { - if ( callbacks == null || callbacks.length == 0 ) { - return; - } - - for ( Callback callback : callbacks ) { - final Map, Callback[]> map = determineAppropriateCallbackMap( callback.getCallbackType() ); - Callback[] entityCallbacks = map.get( entityClass ); - if ( entityCallbacks == null ) { - entityCallbacks = new Callback[0]; + if ( callbacks != null ) { + for ( Callback callback : callbacks ) { + final Map, Callback[]> map = determineAppropriateCallbackMap( callback.getCallbackType() ); + Callback[] entityCallbacks = map.get( entityClass ); + if ( entityCallbacks == null ) { + entityCallbacks = new Callback[0]; + } + entityCallbacks = ArrayHelper.join( entityCallbacks, callback ); + map.put( entityClass, entityCallbacks ); } - entityCallbacks = ArrayHelper.join( entityCallbacks, callback ); - map.put( entityClass, entityCallbacks ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderSelectBuilder.java b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderSelectBuilder.java index 4f54ebfa7e23..05c9cc74f41e 100644 --- a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderSelectBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderSelectBuilder.java @@ -184,8 +184,7 @@ public static SelectStatement createSelectBySingleArrayParameter( ); - if ( loadable instanceof PluralAttributeMapping ) { - final PluralAttributeMapping pluralAttributeMapping = (PluralAttributeMapping) loadable; + if ( loadable instanceof PluralAttributeMapping pluralAttributeMapping ) { builder.applyFiltering( rootQuerySpec, rootTableGroup, pluralAttributeMapping, sqlAstCreationState ); builder.applyOrdering( rootQuerySpec, rootTableGroup, pluralAttributeMapping, sqlAstCreationState ); } @@ -383,8 +382,7 @@ private LoaderSelectBuilder( this.entityGraphTraversalState = entityGraphTraversalState; this.forceIdentifierSelection = forceIdentifierSelection; this.jdbcParameterConsumer = jdbcParameterConsumer; - if ( loadable instanceof PluralAttributeMapping ) { - final PluralAttributeMapping pluralAttributeMapping = (PluralAttributeMapping) loadable; + if ( loadable instanceof PluralAttributeMapping pluralAttributeMapping ) { if ( pluralAttributeMapping.getMappedType() .getCollectionSemantics() .getCollectionClassification() == CollectionClassification.BAG ) { @@ -521,8 +519,7 @@ else if ( this.cachedDomainResult != null ) { ); } - if ( loadable instanceof PluralAttributeMapping ) { - final PluralAttributeMapping pluralAttributeMapping = (PluralAttributeMapping) loadable; + if ( loadable instanceof PluralAttributeMapping pluralAttributeMapping ) { applyFiltering( rootQuerySpec, rootTableGroup, pluralAttributeMapping, sqlAstCreationState ); applyOrdering( rootQuerySpec, rootTableGroup, pluralAttributeMapping, sqlAstCreationState ); } @@ -539,8 +536,7 @@ private List> buildRequestedDomainResults(NavigablePath rootNavi for ( ModelPart part : partsToSelect ) { final NavigablePath navigablePath = rootNavigablePath.append( part.getPartName() ); final TableGroup tableGroup; - if ( part instanceof TableGroupJoinProducer ) { - final TableGroupJoinProducer tableGroupJoinProducer = (TableGroupJoinProducer) part; + if ( part instanceof TableGroupJoinProducer tableGroupJoinProducer ) { final TableGroupJoin tableGroupJoin = tableGroupJoinProducer.createTableGroupJoin( navigablePath, rootTableGroup, @@ -816,8 +812,7 @@ private FetchableConsumer createFetchableConsumer( if ( isKeyFetchable ) { final EntityIdentifierMapping identifierMapping; - if ( fetchParent instanceof BiDirectionalFetch ) { - final BiDirectionalFetch parentAsBiDirectionalFetch = (BiDirectionalFetch) fetchParent; + if ( fetchParent instanceof BiDirectionalFetch parentAsBiDirectionalFetch ) { final Fetchable biDirectionalFetchedMapping = parentAsBiDirectionalFetch.getFetchedMapping(); if ( biDirectionalFetchedMapping instanceof EntityValuedFetchable ) { identifierMapping = ( (EntityValuedFetchable) biDirectionalFetchedMapping ) @@ -830,8 +825,7 @@ private FetchableConsumer createFetchableConsumer( } else { final FetchableContainer fetchableContainer = fetchParent.getReferencedMappingContainer(); - if ( fetchableContainer instanceof EntityValuedModelPart ) { - final EntityValuedModelPart entityValuedModelPart = (EntityValuedModelPart) fetchableContainer; + if ( fetchableContainer instanceof EntityValuedModelPart entityValuedModelPart ) { identifierMapping = entityValuedModelPart.getEntityMappingType().getIdentifierMapping(); } else { @@ -1165,8 +1159,7 @@ private QueryPart generateSubSelect( } private void registerPluralTableGroupParts(FromClauseAccess fromClauseAccess, TableGroup tableGroup) { - if ( tableGroup instanceof PluralTableGroup ) { - final PluralTableGroup pluralTableGroup = (PluralTableGroup) tableGroup; + if ( tableGroup instanceof PluralTableGroup pluralTableGroup ) { if ( pluralTableGroup.getElementTableGroup() != null ) { fromClauseAccess.registerTableGroup( pluralTableGroup.getElementTableGroup().getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/MultiKeyLoadHelper.java b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/MultiKeyLoadHelper.java index 774c2837629b..87e4bd6b451b 100644 --- a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/MultiKeyLoadHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/MultiKeyLoadHelper.java @@ -39,11 +39,10 @@ public static JdbcMapping resolveArrayJdbcMapping( final JavaTypeRegistry javaTypeRegistry = typeConfiguration.getJavaTypeRegistry(); final JavaType rawArrayJavaType = javaTypeRegistry.resolveDescriptor( arrayClass ); - if ( !(rawArrayJavaType instanceof BasicPluralJavaType ) ) { + if ( !(rawArrayJavaType instanceof BasicPluralJavaType arrayJavaType) ) { throw new IllegalArgumentException( "Expecting BasicPluralJavaType for array class `" + arrayClass.getName() + "`, but got `" + rawArrayJavaType + "`" ); } - final BasicPluralJavaType arrayJavaType = (BasicPluralJavaType) rawArrayJavaType; //noinspection unchecked,rawtypes return arrayJavaType.resolveType( typeConfiguration, diff --git a/hibernate-core/src/main/java/org/hibernate/mapping/MappedSuperclass.java b/hibernate-core/src/main/java/org/hibernate/mapping/MappedSuperclass.java index 6d14a7d72a12..34e1283a7f71 100644 --- a/hibernate-core/src/main/java/org/hibernate/mapping/MappedSuperclass.java +++ b/hibernate-core/src/main/java/org/hibernate/mapping/MappedSuperclass.java @@ -182,21 +182,9 @@ public boolean hasProperty(String name) { * @return {@code true} if a property with that name exists; {@code false} if not */ public boolean isPropertyDefinedInHierarchy(String name) { - if ( hasProperty( name ) ) { - return true; - } - - if ( getSuperMappedSuperclass() != null - && getSuperMappedSuperclass().isPropertyDefinedInHierarchy( name ) ) { - return true; - } - - if ( getSuperPersistentClass() != null - && getSuperPersistentClass().isPropertyDefinedInHierarchy( name ) ) { - return true; - } - - return false; + return hasProperty( name ) + || getSuperMappedSuperclass() != null && getSuperMappedSuperclass().isPropertyDefinedInHierarchy( name ) + || getSuperPersistentClass() != null && getSuperPersistentClass().isPropertyDefinedInHierarchy( name ); } public void prepareForMappingModel() { diff --git a/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java b/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java index 6c0e4d61b0a2..e3e370881e22 100644 --- a/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java +++ b/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java @@ -904,8 +904,7 @@ private boolean hasCollectionNotReferencingPK(Collection properties) { return true; } } - else if ( value instanceof org.hibernate.mapping.Collection ) { - final org.hibernate.mapping.Collection collection = (org.hibernate.mapping.Collection) value; + else if ( value instanceof org.hibernate.mapping.Collection collection ) { if ( !( (CollectionType) collection.getType() ).useLHSPrimaryKey() ) { return true; } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/CollectionClassification.java b/hibernate-core/src/main/java/org/hibernate/metamodel/CollectionClassification.java index 178037e11cfe..fb4f15d62174 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/CollectionClassification.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/CollectionClassification.java @@ -132,8 +132,7 @@ public static CollectionClassification interpretSetting(Object value) { else if ( value instanceof CollectionClassification ) { return (CollectionClassification) value; } - else if ( value instanceof String ) { - final String string = (String) value; + else if ( value instanceof String string ) { for ( CollectionClassification collectionClassification : values() ) { if ( collectionClassification.name().equalsIgnoreCase( string ) ) { return collectionClassification; diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/AbstractCompositeIdentifierMapping.java b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/AbstractCompositeIdentifierMapping.java index 7466c5e6aa90..140325c6b4b5 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/AbstractCompositeIdentifierMapping.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/AbstractCompositeIdentifierMapping.java @@ -196,8 +196,7 @@ public int forEachJdbcValue( for ( int i = 0; i < size; i++ ) { final AttributeMapping attributeMapping = embeddableTypeDescriptor.getAttributeMapping( i ); final Object o = embeddableTypeDescriptor.getValue( value, i ); - if ( attributeMapping instanceof ToOneAttributeMapping ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) attributeMapping; + if ( attributeMapping instanceof ToOneAttributeMapping toOneAttributeMapping ) { final ForeignKeyDescriptor fkDescriptor = toOneAttributeMapping.getForeignKeyDescriptor(); final Object identifier = fkDescriptor.getAssociationKeyFromSide( o, diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/EmbeddableRepresentationStrategyPojo.java b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/EmbeddableRepresentationStrategyPojo.java index a4db40faed12..00d334c84cd1 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/EmbeddableRepresentationStrategyPojo.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/EmbeddableRepresentationStrategyPojo.java @@ -188,13 +188,11 @@ private PropertyAccess buildPropertyAccess( ); } else { - if ( bootAttributeDescriptor instanceof Backref ) { - final Backref backref = (Backref) bootAttributeDescriptor; + if ( bootAttributeDescriptor instanceof Backref backref ) { strategy = new PropertyAccessStrategyBackRefImpl( backref.getCollectionRole(), backref .getEntityName() ); } - else if ( bootAttributeDescriptor instanceof IndexBackref ) { - final IndexBackref indexBackref = (IndexBackref) bootAttributeDescriptor; + else if ( bootAttributeDescriptor instanceof IndexBackref indexBackref ) { strategy = new PropertyAccessStrategyIndexBackRefImpl( indexBackref.getCollectionRole(), indexBackref.getEntityName() diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/EntityRepresentationStrategyPojoStandard.java b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/EntityRepresentationStrategyPojoStandard.java index 4cccd69632fa..3650b4e65a8e 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/EntityRepresentationStrategyPojoStandard.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/EntityRepresentationStrategyPojoStandard.java @@ -333,13 +333,11 @@ private PropertyAccess makePropertyAccess(Property bootAttributeDescriptor) { strategy = strategySelector.resolveStrategy( PropertyAccessStrategy.class, propertyAccessorName ); } else { - if ( bootAttributeDescriptor instanceof Backref ) { - final Backref backref = (Backref) bootAttributeDescriptor; + if ( bootAttributeDescriptor instanceof Backref backref ) { strategy = new PropertyAccessStrategyBackRefImpl( backref.getCollectionRole(), backref .getEntityName() ); } - else if ( bootAttributeDescriptor instanceof IndexBackref ) { - final IndexBackref indexBackref = (IndexBackref) bootAttributeDescriptor; + else if ( bootAttributeDescriptor instanceof IndexBackref indexBackref ) { strategy = new PropertyAccessStrategyIndexBackRefImpl( indexBackref.getCollectionRole(), indexBackref.getEntityName() diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/EmbeddableMappingType.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/EmbeddableMappingType.java index b3e193f7f503..9bdec4fae9dd 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/EmbeddableMappingType.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/EmbeddableMappingType.java @@ -153,8 +153,7 @@ default SelectableMapping getJdbcValueSelectable(int columnIndex) { int count = 0; for ( int i = 0; i < numberOfAttributeMappings; i++ ) { final AttributeMapping attributeMapping = getAttributeMapping( i ); - if ( attributeMapping instanceof DiscriminatedAssociationAttributeMapping ) { - final DiscriminatedAssociationAttributeMapping discriminatedAssociationAttributeMapping = (DiscriminatedAssociationAttributeMapping) attributeMapping; + if ( attributeMapping instanceof DiscriminatedAssociationAttributeMapping discriminatedAssociationAttributeMapping ) { if ( count == columnIndex ) { return discriminatedAssociationAttributeMapping.getDiscriminatorMapping(); } @@ -186,8 +185,7 @@ else if ( keyPart instanceof EmbeddableValuedModelPart ) { } } } - else if ( attributeMapping instanceof EmbeddableValuedModelPart ) { - final EmbeddableValuedModelPart embeddableValuedModelPart = (EmbeddableValuedModelPart) attributeMapping; + else if ( attributeMapping instanceof EmbeddableValuedModelPart embeddableValuedModelPart ) { final EmbeddableMappingType embeddableMappingType = embeddableValuedModelPart.getMappedType(); final SelectableMapping aggregateMapping = embeddableMappingType.getAggregateMapping(); if ( aggregateMapping == null ) { @@ -227,8 +225,7 @@ default int getSelectableIndex(String selectableName) { for ( int i = 0; i < numberOfAttributeMappings; i++ ) { final AttributeMapping attributeMapping = getAttributeMapping( i ); final MappingType mappedType = attributeMapping.getMappedType(); - if ( mappedType instanceof EmbeddableMappingType ) { - final EmbeddableMappingType embeddableMappingType = (EmbeddableMappingType) mappedType; + if ( mappedType instanceof EmbeddableMappingType embeddableMappingType ) { final SelectableMapping aggregateMapping = embeddableMappingType.getAggregateMapping(); if ( aggregateMapping != null ) { if ( aggregateMapping.getSelectableName().equals( selectableName ) ) { diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/MappingModelHelper.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/MappingModelHelper.java index 4d87cb8b5b04..e385533ccbb8 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/MappingModelHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/MappingModelHelper.java @@ -96,15 +96,13 @@ public static boolean isCompatibleModelPart(ModelPart attribute1, ModelPart attr if ( attribute1.getClass() != attribute2.getClass() || attribute1.getJavaType() != attribute2.getJavaType() ) { return false; } - if ( attribute1 instanceof Association ) { - final Association association1 = (Association) attribute1; + if ( attribute1 instanceof Association association1 ) { final Association association2 = (Association) attribute2; return association1.getForeignKeyDescriptor().getAssociationKey().equals( association2.getForeignKeyDescriptor().getAssociationKey() ); } - else if ( attribute1 instanceof PluralAttributeMapping ) { - final PluralAttributeMapping plural1 = (PluralAttributeMapping) attribute1; + else if ( attribute1 instanceof PluralAttributeMapping plural1 ) { final PluralAttributeMapping plural2 = (PluralAttributeMapping) attribute2; final CollectionPart element1 = plural1.getElementDescriptor(); final CollectionPart element2 = plural2.getElementDescriptor(); @@ -115,8 +113,7 @@ else if ( attribute1 instanceof PluralAttributeMapping ) { ) && ( index1 == null && index2 == null || isCompatibleModelPart( index1, index2 ) ) && isCompatibleModelPart( element1, element2 ); } - else if ( attribute1 instanceof EmbeddableValuedModelPart ) { - final EmbeddableValuedModelPart embedded1 = (EmbeddableValuedModelPart) attribute1; + else if ( attribute1 instanceof EmbeddableValuedModelPart embedded1 ) { final EmbeddableValuedModelPart embedded2 = (EmbeddableValuedModelPart) attribute2; final EmbeddableMappingType embeddableTypeDescriptor1 = embedded1.getEmbeddableTypeDescriptor(); final EmbeddableMappingType embeddableTypeDescriptor2 = embedded2.getEmbeddableTypeDescriptor(); diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractDomainPath.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractDomainPath.java index cfa5d00fb1b1..27608b806b65 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractDomainPath.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractDomainPath.java @@ -90,8 +90,7 @@ else if ( referenceModelPart instanceof EntityValuedModelPart ) { } return resolve( subPart, ast, tableGroup, modelPartName, creationState ); } - else if ( referenceModelPart instanceof EmbeddableValuedModelPart ) { - final EmbeddableValuedModelPart embeddableValuedModelPart = (EmbeddableValuedModelPart) referenceModelPart; + else if ( referenceModelPart instanceof EmbeddableValuedModelPart embeddableValuedModelPart ) { if ( embeddableValuedModelPart.getFetchableName() .equals( modelPartName ) || ELEMENT_TOKEN.equals( modelPartName ) ) { final int size = embeddableValuedModelPart.getNumberOfFetchables(); diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java index 497e0f0ab8c3..10a5ff61298c 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java @@ -203,8 +203,7 @@ protected boolean inverseInitializeCallback( // We copy the attributes from the inverse mappings and replace the selection mappings for ( int j = 0; j < size; j++ ) { AttributeMapping attributeMapping = inverseMappingType.getAttributeMapping( j ); - if ( attributeMapping instanceof BasicAttributeMapping ) { - final BasicAttributeMapping original = (BasicAttributeMapping) attributeMapping; + if ( attributeMapping instanceof BasicAttributeMapping original ) { final SelectableMapping selectableMapping = selectableMappings.getSelectable( currentIndex ); attributeMapping = BasicAttributeMapping.withSelectableMapping( declaringType, @@ -216,8 +215,7 @@ protected boolean inverseInitializeCallback( ); currentIndex++; } - else if ( attributeMapping instanceof ToOneAttributeMapping ) { - final ToOneAttributeMapping original = (ToOneAttributeMapping) attributeMapping; + else if ( attributeMapping instanceof ToOneAttributeMapping original ) { ForeignKeyDescriptor foreignKeyDescriptor = original.getForeignKeyDescriptor(); if ( foreignKeyDescriptor == null ) { // This is expected to happen when processing a @@ -339,8 +337,7 @@ protected boolean finishInitialization( final Integer temporalPrecision; final boolean isLob; final boolean nullable; - if ( selectable instanceof Column ) { - final Column column = (Column) selectable; + if ( selectable instanceof Column column ) { columnDefinition = column.getSqlType(); length = column.getLength(); precision = column.getPrecision(); @@ -392,9 +389,8 @@ protected boolean finishInitialization( columnPosition++; } - else if ( subtype instanceof AnyType ) { + else if ( subtype instanceof AnyType anyType ) { final Any bootValueMapping = (Any) value; - final AnyType anyType = (AnyType) subtype; final boolean nullable = bootValueMapping.isNullable(); final boolean insertable = value.isColumnInsertable( 0 ); @@ -428,8 +424,7 @@ else if ( subtype instanceof AnyType ) { creationProcess ); } - else if ( subtype instanceof CompositeType ) { - final CompositeType subCompositeType = (CompositeType) subtype; + else if ( subtype instanceof CompositeType subCompositeType ) { final int columnSpan = subCompositeType.getColumnSpan( creationProcess.getCreationContext().getMetadata() ); final String subTableExpression; final String[] subRootTableKeyColumnNames; diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddedForeignKeyDescriptor.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddedForeignKeyDescriptor.java index 7a886619889f..6f97064e5b78 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddedForeignKeyDescriptor.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddedForeignKeyDescriptor.java @@ -113,11 +113,8 @@ public EmbeddedForeignKeyDescriptor( () -> { // todo (6.0) : how to make sure things we need are ready to go? // - e.g., here, we need access to the sub-attributes - if ( targetMappingType.getEmbeddableTypeDescriptor().getNumberOfAttributeMappings() == 0 ) { - // todo (6.0) : ^^ for now, this is the only way we "know" that the embeddable has not been finalized yet - return false; - } - return true; + // todo (6.0) : ^^ for now, this is the only way we "know" that the embeddable has not been finalized yet + return targetMappingType.getEmbeddableTypeDescriptor().getNumberOfAttributeMappings() != 0; } ); } @@ -445,10 +442,9 @@ public Predicate generateJoinPredicate( @Override public boolean isSimpleJoinPredicate(Predicate predicate) { - if ( !( predicate instanceof Junction ) ) { + if ( !(predicate instanceof Junction junction) ) { return false; } - final Junction junction = (Junction) predicate; if ( junction.getNature() != Junction.Nature.CONJUNCTION ) { return false; } @@ -459,20 +455,17 @@ public boolean isSimpleJoinPredicate(Predicate predicate) { Boolean lhsIsKey = null; for ( int i = 0; i < predicates.size(); i++ ) { final Predicate p = predicates.get( i ); - if ( !( p instanceof ComparisonPredicate ) ) { + if ( !(p instanceof ComparisonPredicate comparisonPredicate) ) { return false; } - final ComparisonPredicate comparisonPredicate = (ComparisonPredicate) p; if ( comparisonPredicate.getOperator() != ComparisonOperator.EQUAL ) { return false; } final Expression lhsExpr = comparisonPredicate.getLeftHandExpression(); final Expression rhsExpr = comparisonPredicate.getRightHandExpression(); - if ( !( lhsExpr instanceof ColumnReference ) || !( rhsExpr instanceof ColumnReference ) ) { + if ( !(lhsExpr instanceof ColumnReference lhs) || !(rhsExpr instanceof ColumnReference rhs) ) { return false; } - final ColumnReference lhs = (ColumnReference) lhsExpr; - final ColumnReference rhs = (ColumnReference) rhsExpr; if ( lhsIsKey == null ) { final String keyExpression = keySelectableMappings.getSelectable( i ).getSelectionExpression(); final String targetExpression = targetSelectableMappings.getSelectable( i ).getSelectionExpression(); @@ -581,8 +574,7 @@ public int breakDownJdbcValues( } return jdbcTypeCount; } - else if ( domainValue instanceof Object[] ) { - final Object[] values = (Object[]) domainValue; + else if ( domainValue instanceof Object[] values ) { final int jdbcTypeCount = keySelectableMappings.getJdbcTypeCount(); for ( int i = 0; i < jdbcTypeCount; i++ ) { valueConsumer.consume( offset + i, x, y, values[i], keySelectableMappings.getSelectable( i ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/IdClassEmbeddable.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/IdClassEmbeddable.java index 59c955b3b941..466ae382234c 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/IdClassEmbeddable.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/IdClassEmbeddable.java @@ -181,9 +181,8 @@ public Object getIdentifier(Object entity, SharedSessionContractImplementor sess } } //JPA 2 @MapsId + @IdClass points to the pk of the entity - else if ( attributeMapping instanceof ToOneAttributeMapping + else if ( attributeMapping instanceof ToOneAttributeMapping toOneAttributeMapping && !( getAttributeMapping( i ) instanceof ToOneAttributeMapping ) ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) attributeMapping; final ModelPart targetPart = toOneAttributeMapping.getForeignKeyDescriptor().getPart( toOneAttributeMapping.getSideNature().inverse() ); @@ -216,8 +215,7 @@ public void setIdentifier(Object entity, Object id, SharedSessionContractImpleme (position, virtualIdAttribute) -> { final AttributeMapping idClassAttribute = attributeMappings.get( position ); Object o = idClassAttribute.getValue( id ); - if ( virtualIdAttribute instanceof ToOneAttributeMapping && !( idClassAttribute instanceof ToOneAttributeMapping ) ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) virtualIdAttribute; + if ( virtualIdAttribute instanceof ToOneAttributeMapping toOneAttributeMapping && !( idClassAttribute instanceof ToOneAttributeMapping ) ) { final EntityPersister entityPersister = toOneAttributeMapping.getEntityMappingType() .getEntityPersister(); final EntityKey entityKey = session.generateEntityKey( o, entityPersister ); diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/InverseNonAggregatedIdentifierMapping.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/InverseNonAggregatedIdentifierMapping.java index 357627ddf7b6..e610312bd0ac 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/InverseNonAggregatedIdentifierMapping.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/InverseNonAggregatedIdentifierMapping.java @@ -261,8 +261,7 @@ public void setIdentifier(Object entity, Object id, SharedSessionContractImpleme final AttributeMapping attribute = embeddableTypeDescriptor.getAttributeMapping( position ); final AttributeMapping mappedIdAttributeMapping = identifierValueMapper.getAttributeMapping( position ); Object o = mappedIdAttributeMapping.getValue( id ); - if ( attribute instanceof ToOneAttributeMapping && !( mappedIdAttributeMapping instanceof ToOneAttributeMapping ) ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) attribute; + if ( attribute instanceof ToOneAttributeMapping toOneAttributeMapping && !( mappedIdAttributeMapping instanceof ToOneAttributeMapping ) ) { final EntityPersister entityPersister = toOneAttributeMapping.getEntityMappingType() .getEntityPersister(); final EntityKey entityKey = session.generateEntityKey( o, entityPersister ); diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ManyToManyCollectionPart.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ManyToManyCollectionPart.java index e9f3f4db7453..eeb801244839 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ManyToManyCollectionPart.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ManyToManyCollectionPart.java @@ -599,8 +599,7 @@ private ForeignKeyDescriptor createForeignKeyDescriptor( assert fkTargetModelPart != null; // If this is mapped by a to-one attribute, we can use the FK of that attribute - if ( fkTargetModelPart instanceof ToOneAttributeMapping ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) fkTargetModelPart; + if ( fkTargetModelPart instanceof ToOneAttributeMapping toOneAttributeMapping ) { if ( toOneAttributeMapping.getForeignKeyDescriptor() == null ) { throw new IllegalStateException( "Not yet ready: " + toOneAttributeMapping ); } @@ -611,9 +610,8 @@ private ForeignKeyDescriptor createForeignKeyDescriptor( ); } - if ( fkTargetModelPart instanceof ManyToManyCollectionPart ) { + if ( fkTargetModelPart instanceof ManyToManyCollectionPart targetModelPart ) { // can this ever be anything other than another (the inverse) many-to-many part? - final ManyToManyCollectionPart targetModelPart = (ManyToManyCollectionPart) fkTargetModelPart; if ( targetModelPart.getForeignKeyDescriptor() == null ) { throw new IllegalStateException( "Not yet ready: " + targetModelPart ); } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/MappingModelCreationHelper.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/MappingModelCreationHelper.java index d6af37caff8f..305564a9bdee 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/MappingModelCreationHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/MappingModelCreationHelper.java @@ -741,8 +741,7 @@ private static void interpretPluralAttributeMappingKeyDescriptor( .findSubPart( collectionDescriptor.getMappedByProperty(), null ); } - if ( attributeMappingSubPart instanceof ToOneAttributeMapping ) { - final ToOneAttributeMapping referencedAttributeMapping = (ToOneAttributeMapping) attributeMappingSubPart; + if ( attributeMappingSubPart instanceof ToOneAttributeMapping referencedAttributeMapping ) { setReferencedAttributeForeignKeyDescriptor( attributeMapping, @@ -868,8 +867,7 @@ public static boolean interpretToOneKeyDescriptor( String referencedPropertyName; boolean swapDirection = false; - if ( bootValueMapping instanceof OneToOne ) { - OneToOne oneToOne = (OneToOne) bootValueMapping; + if ( bootValueMapping instanceof OneToOne oneToOne ) { swapDirection = oneToOne.getForeignKeyType() == ForeignKeyDirection.TO_PARENT; referencedPropertyName = oneToOne.getMappedByProperty(); if ( referencedPropertyName == null ) { @@ -1065,8 +1063,7 @@ private static boolean interpretNestedToOneKeyDescriptor( if ( modelPart == null ) { return false; } - if ( modelPart instanceof ToOneAttributeMapping ) { - ToOneAttributeMapping referencedAttributeMapping = (ToOneAttributeMapping) modelPart; + if ( modelPart instanceof ToOneAttributeMapping referencedAttributeMapping ) { ForeignKeyDescriptor foreignKeyDescriptor = referencedAttributeMapping.getForeignKeyDescriptor(); if ( foreignKeyDescriptor == null ) { return false; @@ -1123,8 +1120,7 @@ private static EmbeddedForeignKeyDescriptor buildEmbeddableForeignKeyDescriptor( MappingModelCreationProcess creationProcess) { final boolean hasConstraint; final SelectableMappings keySelectableMappings; - if ( bootValueMapping instanceof Collection ) { - final Collection collectionBootValueMapping = (Collection) bootValueMapping; + if ( bootValueMapping instanceof Collection collectionBootValueMapping ) { hasConstraint = ((SimpleValue) collectionBootValueMapping.getKey()).isConstrained(); keyTableExpression = keyTableExpression != null ? keyTableExpression : getTableIdentifierExpression( collectionBootValueMapping.getCollectionTable(), @@ -1209,8 +1205,7 @@ private static EmbeddedForeignKeyDescriptor buildEmbeddableForeignKeyDescriptor( public static int[] getPropertyOrder(Value bootValueMapping, MappingModelCreationProcess creationProcess) { final ComponentType componentType; final boolean sorted; - if ( bootValueMapping instanceof Collection ) { - final Collection collectionBootValueMapping = (Collection) bootValueMapping; + if ( bootValueMapping instanceof Collection collectionBootValueMapping ) { componentType = (ComponentType) collectionBootValueMapping.getKey().getType(); assert ( (SortableValue) collectionBootValueMapping.getKey() ).isSorted(); sorted = ( (SortableValue) collectionBootValueMapping.getKey() ).isSorted(); @@ -1354,9 +1349,8 @@ private static CollectionPart interpretMapKey( ); } - if ( bootMapKeyDescriptor instanceof Component ) { - final Component component = (Component) bootMapKeyDescriptor; - final CompositeType compositeType = (CompositeType) component.getType(); + if ( bootMapKeyDescriptor instanceof Component component ) { + final CompositeType compositeType = component.getType(); final EmbeddableMappingTypeImpl mappingType = EmbeddableMappingTypeImpl.from( @@ -1451,8 +1445,7 @@ private static CollectionPart interpretElement( ); } - if ( element instanceof Component ) { - final Component component = (Component) element; + if ( element instanceof Component component ) { final CompositeType compositeType = (CompositeType) collectionDescriptor.getElementType(); @@ -1476,8 +1469,7 @@ private static CollectionPart interpretElement( return (CollectionPart) mappingType.getEmbeddedValueMapping(); } - if ( element instanceof Any ) { - final Any anyBootMapping = (Any) element; + if ( element instanceof Any anyBootMapping ) { final TypeConfiguration typeConfiguration = creationProcess.getCreationContext().getTypeConfiguration(); final JavaTypeRegistry jtdRegistry = typeConfiguration.getJavaTypeRegistry(); @@ -1849,8 +1841,7 @@ public static ToOneAttributeMapping buildSingularAssociationAttributeMapping( CascadeStyle cascadeStyle, MappingModelCreationProcess creationProcess, Function mappingConverter) { - if ( bootProperty.getValue() instanceof ToOne ) { - final ToOne value = (ToOne) bootProperty.getValue(); + if ( bootProperty.getValue() instanceof ToOne value ) { final EntityPersister entityPersister = creationProcess.getEntityPersister( value.getReferencedEntityName() ); final AttributeMetadata attributeMetadata = getAttributeMetadata( bootProperty, @@ -1906,7 +1897,7 @@ else if ( !lazy navigableRole, stateArrayPosition, fetchableIndex, - (ToOne) bootProperty.getValue(), + value, attributeMetadata, fetchTiming, fetchStyle, diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/NonAggregatedIdentifierMappingImpl.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/NonAggregatedIdentifierMappingImpl.java index 84d0995cb5ea..24b267ff3062 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/NonAggregatedIdentifierMappingImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/NonAggregatedIdentifierMappingImpl.java @@ -303,8 +303,7 @@ public void setIdentifier(Object entity, Object id, SharedSessionContractImpleme final AttributeMapping attribute = embeddableTypeDescriptor.getAttributeMapping( i ); final AttributeMapping mappedIdAttributeMapping = identifierValueMapper.getAttributeMapping( i ); Object o = mappedIdAttributeMapping.getValue( id ); - if ( attribute instanceof ToOneAttributeMapping && !( mappedIdAttributeMapping instanceof ToOneAttributeMapping ) ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) attribute; + if ( attribute instanceof ToOneAttributeMapping toOneAttributeMapping && !( mappedIdAttributeMapping instanceof ToOneAttributeMapping ) ) { final EntityPersister entityPersister = toOneAttributeMapping.getEntityMappingType().getEntityPersister(); final EntityKey entityKey = session.generateEntityKey( o, entityPersister ); final PersistenceContext persistenceContext = session.getPersistenceContext(); diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/OneToManyCollectionPart.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/OneToManyCollectionPart.java index 5e3d4c77cc11..18380d806d6c 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/OneToManyCollectionPart.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/OneToManyCollectionPart.java @@ -168,8 +168,7 @@ public TableGroupJoin createTableGroupJoin( final EntityCollectionPart elementPart = (EntityCollectionPart) getCollectionDescriptor().getAttributeMapping().getElementDescriptor(); final EntityMappingType elementEntity = elementPart.getAssociatedEntityMappingType(); final AttributeMapping mapKeyAttribute = elementEntity.findAttributeMapping( mapKeyPropertyName ); - if ( mapKeyAttribute instanceof ToOneAttributeMapping ) { - final ToOneAttributeMapping toOne = (ToOneAttributeMapping) mapKeyAttribute; + if ( mapKeyAttribute instanceof ToOneAttributeMapping toOne ) { final NavigablePath mapKeyPropertyPath = navigablePath.append( mapKeyPropertyName ); final TableGroupJoin tableGroupJoin = toOne.createTableGroupJoin( mapKeyPropertyPath, diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java index f4fd2108aee9..679ff69dbd52 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java @@ -191,7 +191,7 @@ public static SelectableMapping from( scale = column.getScale(); temporalPrecision = column.getTemporalPrecision(); - isNullable = forceNotNullable ? false : column.isNullable(); + isNullable = !forceNotNullable && column.isNullable(); isLob = column.isSqlTypeLob( creationContext.getMetadata() ); selectableName = column.getQuotedName( dialect ); } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleForeignKeyDescriptor.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleForeignKeyDescriptor.java index d3364698675e..483616d98cec 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleForeignKeyDescriptor.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleForeignKeyDescriptor.java @@ -432,10 +432,9 @@ public Predicate generateJoinPredicate( @Override public boolean isSimpleJoinPredicate(Predicate predicate) { - if ( !( predicate instanceof ComparisonPredicate ) ) { + if ( !(predicate instanceof ComparisonPredicate comparisonPredicate) ) { return false; } - final ComparisonPredicate comparisonPredicate = (ComparisonPredicate) predicate; if ( comparisonPredicate.getOperator() != ComparisonOperator.EQUAL ) { return false; } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ToOneAttributeMapping.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ToOneAttributeMapping.java index 64d577ea001b..c4ac4e7f1656 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ToOneAttributeMapping.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ToOneAttributeMapping.java @@ -107,7 +107,6 @@ import org.hibernate.sql.results.internal.domain.CircularBiDirectionalFetchImpl; import org.hibernate.sql.results.internal.domain.CircularFetchImpl; import org.hibernate.type.ComponentType; -import org.hibernate.type.CompositeType; import org.hibernate.type.EmbeddedComponentType; import org.hibernate.type.EntityType; import org.hibernate.type.Type; @@ -272,9 +271,8 @@ public ToOneAttributeMapping( declaringEntityPersister, navigableRole ); - if ( bootValue instanceof ManyToOne ) { - final ManyToOne manyToOne = (ManyToOne) bootValue; - this.notFoundAction = ( (ManyToOne) bootValue ).getNotFoundAction(); + if ( bootValue instanceof ManyToOne manyToOne ) { + this.notFoundAction = manyToOne.getNotFoundAction(); if ( manyToOne.isLogicalOneToOne() ) { cardinality = Cardinality.LOGICAL_ONE_TO_ONE; } @@ -368,7 +366,7 @@ && equal( join.getKey(), manyToOne ) ) { isKeyTableNullable = declaringEntityPersister.isNullableTable( tableIndex ); } } - isOptional = ( (ManyToOne) bootValue ).isIgnoreNotFound(); + isOptional = manyToOne.isIgnoreNotFound(); isInternalLoadNullable = ( isNullable && bootValue.isForeignKeyEnabled() ) || hasNotFoundAction(); } else { @@ -591,8 +589,7 @@ private static SelectablePath findBidirectionalOneToManyAttributeName( return bidirectionalAttributeName; } } - if ( value instanceof Collection ) { - final Collection collection = (Collection) value; + if ( value instanceof Collection collection ) { if ( propertyPath.equals( collection.getMappedByProperty() ) && collection.getElement().getType().getName() .equals( declaringType.getJavaType().getTypeName() ) ) { @@ -625,8 +622,7 @@ private SelectablePath findBidirectionalOneToOneAttributeName( return bidirectionalAttributeName; } } - else if ( value instanceof OneToOne ) { - final OneToOne oneToOne = (OneToOne) value; + else if ( value instanceof OneToOne oneToOne ) { if (declaringTableGroupProducer.getNavigableRole().getLocalName().equals( oneToOne.getReferencedEntityName() ) && propertyPath.equals( oneToOne.getMappedByProperty() ) && oneToOne.getReferencedEntityName() @@ -768,8 +764,7 @@ public static void addPrefixedPropertyNames( if ( prefix != null ) { targetKeyPropertyNames.add( prefix ); } - if ( type instanceof ComponentType ) { - final CompositeType componentType = (CompositeType) type; + if ( type instanceof ComponentType componentType ) { final String[] propertyNames = componentType.getPropertyNames(); final Type[] componentTypeSubtypes = componentType.getSubtypes(); for ( int i = 0, propertyNamesLength = propertyNames.length; i < propertyNamesLength; i++ ) { @@ -783,8 +778,7 @@ public static void addPrefixedPropertyNames( addPrefixedPropertyNames( targetKeyPropertyNames, newPrefix, componentTypeSubtypes[i], factory ); } } - else if ( type instanceof EntityType ) { - final EntityType entityType = (EntityType) type; + else if ( type instanceof EntityType entityType ) { final Type identifierOrUniqueKeyType = entityType.getIdentifierOrUniqueKeyType( factory ); final String propertyName; if ( entityType.isReferenceToPrimaryKey() ) { @@ -1116,8 +1110,7 @@ class Mother { otherSideMappedBy = "biologicalChild" */ - if ( parentModelPart instanceof ToOneAttributeMapping ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) parentModelPart; + if ( parentModelPart instanceof ToOneAttributeMapping toOneAttributeMapping ) { if ( toOneAttributeMapping.bidirectionalAttributePath != null ) { return toOneAttributeMapping.isBidirectionalAttributeName( fetchablePath, @@ -1923,9 +1916,8 @@ private EntityFetch withRegisteredAssociationKeys( if ( cardinality == Cardinality.LOGICAL_ONE_TO_ONE && bidirectionalAttributePath != null ) { final ModelPart bidirectionalModelPart = entityMappingType.findByPath( bidirectionalAttributePath ); // Add the inverse association key side as well to be able to resolve to a CircularFetch - if ( bidirectionalModelPart instanceof ToOneAttributeMapping ) { + if ( bidirectionalModelPart instanceof ToOneAttributeMapping bidirectionalAttribute ) { assert bidirectionalModelPart.getPartMappingType() == declaringTableGroupProducer; - final ToOneAttributeMapping bidirectionalAttribute = (ToOneAttributeMapping) bidirectionalModelPart; final AssociationKey secondKey = bidirectionalAttribute.getForeignKeyDescriptor().getAssociationKey(); if ( creationState.registerVisitedAssociationKey( secondKey ) ) { additionalAssociationKey = secondKey; diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/ColumnReference.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/ColumnReference.java index d21009c782f8..a055722298c0 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/ColumnReference.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/ColumnReference.java @@ -109,16 +109,14 @@ public void apply( TableReference getTableReference(TableGroup tableGroup) { ModelPartContainer modelPart = tableGroup.getModelPart(); - if ( modelPart instanceof PluralAttributeMapping ) { - final PluralAttributeMapping pluralAttribute = (PluralAttributeMapping) modelPart; + if ( modelPart instanceof PluralAttributeMapping pluralAttribute ) { if ( !pluralAttribute.getCollectionDescriptor().hasManyToManyOrdering() ) { return tableGroup.getPrimaryTableReference(); } final MappingType elementMappingType = pluralAttribute.getElementDescriptor().getPartMappingType(); - if ( elementMappingType instanceof EntityPersister) { - final EntityPersister entityPersister = (EntityPersister) elementMappingType; + if ( elementMappingType instanceof EntityPersister entityPersister ) { final String tableName = entityPersister.getTableNameForColumn( columnExpression ); return tableGroup.getTableReference( tableGroup.getNavigablePath(), tableName ); } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/ParseTreeVisitor.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/ParseTreeVisitor.java index 12ce4e67f7b2..38008e75a202 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/ParseTreeVisitor.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/ParseTreeVisitor.java @@ -89,8 +89,7 @@ public OrderingSpecification visitSortSpecification(OrderingParser.SortSpecifica } if ( parsedSpec.getChildCount() > i ) { final ParseTree parseTree = parsedSpec.getChild( i ); - if ( parseTree instanceof OrderingParser.DirectionContext ) { - final OrderingParser.DirectionContext directionCtx = (OrderingParser.DirectionContext) parseTree; + if ( parseTree instanceof OrderingParser.DirectionContext directionCtx ) { if ( ( (TerminalNode) directionCtx.getChild( 0 ) ).getSymbol().getType() == OrderingParser.ASC ) { result.setSortOrder( SortDirection.ASCENDING ); } @@ -102,8 +101,7 @@ public OrderingSpecification visitSortSpecification(OrderingParser.SortSpecifica } if ( parsedSpec.getChildCount() > i ) { final ParseTree parseTree = parsedSpec.getChild( i ); - if ( parseTree instanceof OrderingParser.NullsPrecedenceContext ) { - final OrderingParser.NullsPrecedenceContext nullsCtx = (OrderingParser.NullsPrecedenceContext) parseTree; + if ( parseTree instanceof OrderingParser.NullsPrecedenceContext nullsCtx ) { if ( ( (TerminalNode) nullsCtx.getChild( 1 ) ).getSymbol().getType() == OrderingParser.FIRST ) { result.setNullPrecedence( NullPrecedence.FIRST ); } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/PathConsumer.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/PathConsumer.java index 69ed38abfa71..833a91b2a380 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/PathConsumer.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/PathConsumer.java @@ -24,7 +24,7 @@ public class PathConsumer { private final SequencePart rootSequencePart; - private StringBuilder pathSoFar = new StringBuilder(); + private final StringBuilder pathSoFar = new StringBuilder(); private SequencePart currentPart; public PathConsumer( diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/PluralAttributePath.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/PluralAttributePath.java index bd35d7d1676a..7e11b46374d4 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/PluralAttributePath.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/ordering/ast/PluralAttributePath.java @@ -78,8 +78,7 @@ public DomainPath resolvePathPart( // the above checks for explicit element or index descriptor references // try also as an implicit element or index sub-part reference... - if ( pluralAttributeMapping.getElementDescriptor() instanceof EmbeddableValuedModelPart ) { - final EmbeddableValuedModelPart elementDescriptor = (EmbeddableValuedModelPart) pluralAttributeMapping.getElementDescriptor(); + if ( pluralAttributeMapping.getElementDescriptor() instanceof EmbeddableValuedModelPart elementDescriptor ) { final ModelPart elementSubPart = elementDescriptor.findSubPart( name, null ); if ( elementSubPart != null ) { // create the CollectionSubPath to use as the `lhs` for the element sub-path @@ -96,8 +95,7 @@ public DomainPath resolvePathPart( } } - if ( pluralAttributeMapping.getIndexDescriptor() instanceof EmbeddableValuedModelPart ) { - final EmbeddableValuedModelPart indexDescriptor = (EmbeddableValuedModelPart) pluralAttributeMapping.getIndexDescriptor(); + if ( pluralAttributeMapping.getIndexDescriptor() instanceof EmbeddableValuedModelPart indexDescriptor ) { final ModelPart indexSubPart = indexDescriptor.findSubPart( name, null ); if ( indexSubPart != null ) { // create the CollectionSubPath to use as the `lhs` for the element sub-path diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AbstractAttribute.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AbstractAttribute.java index f9490f368c95..b0af4b868b6c 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AbstractAttribute.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AbstractAttribute.java @@ -33,7 +33,7 @@ public abstract class AbstractAttribute implements PersistentAttribute valueType; - private transient Member member; + private final transient Member member; protected AbstractAttribute( ManagedDomainType declaringType, diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EmbeddedSqmPathSource.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EmbeddedSqmPathSource.java index cbc4fe8317a2..80c0fa47ba93 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EmbeddedSqmPathSource.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EmbeddedSqmPathSource.java @@ -36,11 +36,7 @@ public EmbeddableDomainType getSqmPathType() { @Override public SqmPathSource findSubPathSource(String name) { final SqmPathSource subPathSource = getSqmPathType().findSubPathSource( name ); - if ( subPathSource != null ) { - return subPathSource; - } - - return null; + return subPathSource; } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MapMember.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MapMember.java index 83c68acbe232..064c39920f5c 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MapMember.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MapMember.java @@ -13,7 +13,7 @@ * @author Brad Koehn */ public class MapMember implements Member { - private String name; + private final String name; private final Class type; public MapMember(String name, Class type) { diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/SingularAttributeImpl.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/SingularAttributeImpl.java index d2b24e7ad569..9e2a096f2b48 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/SingularAttributeImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/SingularAttributeImpl.java @@ -243,8 +243,7 @@ public NavigablePath createNavigablePath(SqmPath parent, String alias) { if ( parent.getResolvedModel() instanceof PluralPersistentAttribute ) { navigablePath = navigablePath.append( CollectionPart.Nature.ELEMENT.getName() ); } - if ( getDeclaringType() instanceof IdentifiableDomainType ) { - final IdentifiableDomainType declaringType = (IdentifiableDomainType) getDeclaringType(); + if ( getDeclaringType() instanceof IdentifiableDomainType declaringType ) { if ( !declaringType.hasSingleIdAttribute() ) { return new EntityIdentifierNavigablePath( navigablePath, null ) .append( getName(), SqmCreationHelper.determineAlias( alias ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java index 0c94a958d1f3..e5c6785c8185 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java @@ -1175,8 +1175,7 @@ public Iterable uniqueKeyEntries() { private static List initUniqueKeyEntries(final AbstractEntityPersister aep) { final ArrayList uniqueKeys = new ArrayList<>(); for ( Type propertyType : aep.getPropertyTypes() ) { - if ( propertyType instanceof AssociationType ) { - final AssociationType associationType = (AssociationType) propertyType; + if ( propertyType instanceof AssociationType associationType ) { final String ukName = associationType.getLHSPropertyName(); if ( ukName != null ) { final AttributeMapping attributeMapping = aep.findAttributeMapping( ukName ); @@ -1444,10 +1443,9 @@ public Object initializeLazyProperty(String fieldName, Object entity, SharedSess if ( hasCollections() ) { final Type type = getPropertyType( fieldName ); - if ( type instanceof CollectionType ) { + if ( type instanceof CollectionType collectionType ) { // we have a condition where a collection attribute is being access via enhancement: // we can circumvent all the rest and just return the PersistentCollection - final CollectionType collectionType = (CollectionType) type; final CollectionPersister persister = factory.getRuntimeMetamodels() .getMappingMetamodel() .getCollectionDescriptor( collectionType.getRole() ); @@ -1951,8 +1949,7 @@ private ImmutableFetchList fetchProcessor(FetchParent fetchParent, LoaderSqlAstC continue; } } - else if ( fetchable instanceof Association ) { - final Association association = (Association) fetchable; + else if ( fetchable instanceof Association association ) { // Ignore the fetchable if the FK is on the other side if ( association.getSideNature() == ForeignKeyDescriptor.Nature.TARGET ) { continue; @@ -5219,8 +5216,7 @@ protected EntityIdentifierMapping generateIdentifierMapping( MappingModelCreationProcess creationProcess) { final Type idType = getIdentifierType(); - if ( idType instanceof CompositeType ) { - final CompositeType cidType = (CompositeType) idType; + if ( idType instanceof CompositeType cidType ) { // NOTE: the term `isEmbedded` here uses Hibernate's older (pre-JPA) naming for its "non-aggregated" // composite-id support. It unfortunately conflicts with the JPA usage of "embedded". Here we normalize @@ -5475,13 +5471,11 @@ protected AttributeMapping generateNonIdAttributeMapping( creationProcess ); } - else if ( attrType instanceof AnyType ) { + else if ( attrType instanceof AnyType anyType ) { final JavaType baseAssociationJtd = creationContext.getTypeConfiguration().getJavaTypeRegistry() .getDescriptor( Object.class ); - final AnyType anyType = (AnyType) attrType; - final MutabilityPlan mutabilityPlan = new DiscriminatedAssociationAttributeMapping.MutabilityPlanImpl( anyType ); final SimpleAttributeMetadata attributeMetadataAccess = new SimpleAttributeMetadata( propertyAccess, @@ -5503,7 +5497,7 @@ else if ( attrType instanceof AnyType ) { bootProperty.isLazy() ? FetchTiming.DELAYED : FetchTiming.IMMEDIATE, propertyAccess, bootProperty, - (AnyType) attrType, + anyType, (Any) value, creationProcess ); @@ -5819,8 +5813,7 @@ public ModelPart findSubPart(String name, EntityMappingType treatTargetType) { } else { for ( AttributeMapping attribute : declaredAttributeMappings.valueIterator() ) { - if ( attribute instanceof EmbeddableValuedModelPart && attribute instanceof VirtualModelPart ) { - EmbeddableValuedModelPart part = (EmbeddableValuedModelPart) attribute; + if ( attribute instanceof EmbeddableValuedModelPart part && attribute instanceof VirtualModelPart ) { final ModelPart subPart = part.findSubPart( name, null ); if ( subPart != null ) { return subPart; @@ -6136,9 +6129,8 @@ public String[] getSubclassPropertyColumnAliases(String propertyName, String suf } // aliases for composite-id's - if ( getIdentifierType() instanceof ComponentType ) { + if ( getIdentifierType() instanceof ComponentType componentId ) { // Fetch embedded identifiers property names from the "virtual" identifier component - final ComponentType componentId = (ComponentType) getIdentifierType(); final String[] idPropertyNames = componentId.getPropertyNames(); final String[] idAliases = getIdentifierAliases(); diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/EntityPropertyMapping.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/EntityPropertyMapping.java index b36b95866ee2..e5aac4c65756 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/EntityPropertyMapping.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/EntityPropertyMapping.java @@ -153,9 +153,7 @@ else if ( !( existingType instanceof AssociationType ) ) { logIncompatibleRegistration( path, existingType, type ); } } - else if ( type instanceof EntityType && existingType instanceof EntityType ) { - EntityType entityType1 = (EntityType) existingType; - EntityType entityType2 = (EntityType) type; + else if ( type instanceof EntityType entityType2 && existingType instanceof EntityType entityType1 ) { if ( entityType1.getAssociatedEntityName().equals( entityType2.getAssociatedEntityName() ) ) { logDuplicateRegistration( path, existingType, type ); @@ -205,16 +203,13 @@ private Type getCommonType(MetadataImplementor metadata, EntityType entityType1, } // Create a copy of the type but with the common class - if ( entityType1 instanceof ManyToOneType ) { - ManyToOneType t = (ManyToOneType) entityType1; + if ( entityType1 instanceof ManyToOneType t ) { return new ManyToOneType( t, commonClass.getEntityName() ); } - else if ( entityType1 instanceof SpecialOneToOneType ) { - SpecialOneToOneType t = (SpecialOneToOneType) entityType1; + else if ( entityType1 instanceof SpecialOneToOneType t ) { return new SpecialOneToOneType( t, commonClass.getEntityName() ); } - else if ( entityType1 instanceof OneToOneType ) { - OneToOneType t = (OneToOneType) entityType1; + else if ( entityType1 instanceof OneToOneType t ) { return new OneToOneType( t, commonClass.getEntityName() ); } else { @@ -274,8 +269,7 @@ protected void initPropertyPaths( addPropertyPath( path, type, columns, columnReaders, columnReaderTemplates, factory ); } - if ( type instanceof AnyType ) { - AnyType actype = (AnyType) type; + if ( type instanceof AnyType actype ) { initComponentPropertyPaths( path, actype, @@ -286,8 +280,7 @@ protected void initPropertyPaths( factory ); } - else if ( type instanceof ComponentType ) { - ComponentType actype = (ComponentType) type; + else if ( type instanceof ComponentType actype ) { initComponentPropertyPaths( path, actype, diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java index 55b780a1c37c..0b04eaf91587 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java @@ -1001,8 +1001,7 @@ protected EntityIdentifierMapping generateIdentifierMapping( MappingModelCreationProcess creationProcess) { final Type idType = getIdentifierType(); - if ( idType instanceof CompositeType ) { - final CompositeType cidType = (CompositeType) idType; + if ( idType instanceof CompositeType cidType ) { // NOTE: the term `isEmbedded` here uses Hibernate's older (pre-JPA) naming for its "non-aggregated" // composite-id support. It unfortunately conflicts with the JPA usage of "embedded". Here we normalize diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/mutation/AttributeAnalysis.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/mutation/AttributeAnalysis.java index e756c0720eca..9d90e60557cf 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/mutation/AttributeAnalysis.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/mutation/AttributeAnalysis.java @@ -70,6 +70,6 @@ boolean isDirty() { boolean isDirty() { return true; } - }; + } } diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/HibernateProxy.java b/hibernate-core/src/main/java/org/hibernate/proxy/HibernateProxy.java index ac92eb542333..b4ba013bbf72 100644 --- a/hibernate-core/src/main/java/org/hibernate/proxy/HibernateProxy.java +++ b/hibernate-core/src/main/java/org/hibernate/proxy/HibernateProxy.java @@ -28,8 +28,7 @@ public interface HibernateProxy extends Serializable, PrimeAmongSecondarySuperty * object is a proxy, or {@code null} otherwise. */ static @Nullable LazyInitializer extractLazyInitializer(final @Nullable Object object) { - if ( object instanceof PrimeAmongSecondarySupertypes ) { - PrimeAmongSecondarySupertypes t = (PrimeAmongSecondarySupertypes) object; + if ( object instanceof PrimeAmongSecondarySupertypes t ) { final HibernateProxy hibernateProxy = t.asHibernateProxy(); if ( hibernateProxy != null ) { return hibernateProxy.getHibernateLazyInitializer(); diff --git a/hibernate-core/src/main/java/org/hibernate/query/common/FetchClauseType.java b/hibernate-core/src/main/java/org/hibernate/query/common/FetchClauseType.java index 2a6a96cb05a5..950a5fc8fe2b 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/common/FetchClauseType.java +++ b/hibernate-core/src/main/java/org/hibernate/query/common/FetchClauseType.java @@ -25,5 +25,5 @@ public enum FetchClauseType { /** * Also fetches ties if the last value is not unique {@code FETCH FIRST n PERCENT ROWS WITH TIES}. */ - PERCENT_WITH_TIES; + PERCENT_WITH_TIES } diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmPathRegistryImpl.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmPathRegistryImpl.java index ef568827e274..25583978568e 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmPathRegistryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmPathRegistryImpl.java @@ -69,8 +69,7 @@ public void register(SqmPath sqmPath) { // Regarding part #1 (add to the path-by-path map), it is ok for a SqmFrom to replace a // non-SqmFrom. This should equate to, e.g., an implicit join. - if ( sqmPath instanceof SqmFrom ) { - final SqmFrom sqmFrom = (SqmFrom) sqmPath; + if ( sqmPath instanceof SqmFrom sqmFrom ) { registerByAliasOnly( sqmFrom ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmTreeCreationHelper.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmTreeCreationHelper.java index 44db3663b2a9..da5f9d26636f 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmTreeCreationHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmTreeCreationHelper.java @@ -201,8 +201,7 @@ public static String extractVariable(HqlParser.VariableContext ctx, SemanticQuer } final ParseTree lastChild = ctx.getChild( ctx.getChildCount() - 1 ); - if ( lastChild instanceof HqlParser.IdentifierContext ) { - final HqlParser.IdentifierContext identifierContext = (HqlParser.IdentifierContext) lastChild; + if ( lastChild instanceof HqlParser.IdentifierContext identifierContext ) { // in this branch, the alias could be a reserved word ("keyword as identifier") // which JPA disallows... if ( sqmBuilder.getCreationOptions().useStrictJpaCompliance() ) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java b/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java index 07e2bc5e464a..c955c10eb8b7 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java @@ -263,8 +263,7 @@ private static MappingModelExpressible determineMappingType(QueryParameterBin return type; } - if ( bindType instanceof JavaTypedExpressible) { - final JavaTypedExpressible javaTypedExpressible = (JavaTypedExpressible) bindType; + if ( bindType instanceof JavaTypedExpressible javaTypedExpressible ) { final JavaType jtd = javaTypedExpressible.getExpressibleJavaType(); if ( jtd.getJavaTypeClass() != null ) { // avoid dynamic models diff --git a/hibernate-core/src/main/java/org/hibernate/query/internal/ScrollableResultsIterator.java b/hibernate-core/src/main/java/org/hibernate/query/internal/ScrollableResultsIterator.java index 382cab82b400..cdb724e84679 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/internal/ScrollableResultsIterator.java +++ b/hibernate-core/src/main/java/org/hibernate/query/internal/ScrollableResultsIterator.java @@ -33,6 +33,6 @@ public boolean hasNext() { @Override public T next() { - return (T) scrollableResults.get(); + return scrollableResults.get(); } } diff --git a/hibernate-core/src/main/java/org/hibernate/query/results/internal/Builders.java b/hibernate-core/src/main/java/org/hibernate/query/results/internal/Builders.java index 66b9b3e12629..78e080ecfc58 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/results/internal/Builders.java +++ b/hibernate-core/src/main/java/org/hibernate/query/results/internal/Builders.java @@ -169,8 +169,7 @@ public static ResultBuilder attributeResult( throw new IllegalArgumentException( "Could not locate attribute mapping : " + fullEntityName + "." + attributePath ); } - if ( attributeMapping instanceof SingularAttributeMapping ) { - final SingularAttributeMapping singularAttributeMapping = (SingularAttributeMapping) attributeMapping; + if ( attributeMapping instanceof SingularAttributeMapping singularAttributeMapping ) { return new DynamicResultBuilderAttribute( singularAttributeMapping, columnAlias, fullEntityName, attributePath ); } @@ -277,13 +276,11 @@ public static ImplicitFetchBuilder implicitFetchBuilder( return new ImplicitFetchBuilderBasic( fetchPath, basicValuedFetchable, creationState ); } - if ( fetchable instanceof EmbeddableValuedFetchable ) { - final EmbeddableValuedFetchable embeddableValuedFetchable = (EmbeddableValuedFetchable) fetchable; + if ( fetchable instanceof EmbeddableValuedFetchable embeddableValuedFetchable ) { return new ImplicitFetchBuilderEmbeddable( fetchPath, embeddableValuedFetchable, creationState ); } - if ( fetchable instanceof ToOneAttributeMapping ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) fetchable; + if ( fetchable instanceof ToOneAttributeMapping toOneAttributeMapping ) { return new ImplicitFetchBuilderEntity( fetchPath, toOneAttributeMapping, creationState ); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/results/internal/dynamic/DynamicFetchBuilderStandard.java b/hibernate-core/src/main/java/org/hibernate/query/results/internal/dynamic/DynamicFetchBuilderStandard.java index 9f955e8f805e..fb85889d411f 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/results/internal/dynamic/DynamicFetchBuilderStandard.java +++ b/hibernate-core/src/main/java/org/hibernate/query/results/internal/dynamic/DynamicFetchBuilderStandard.java @@ -36,7 +36,7 @@ public class DynamicFetchBuilderStandard implements DynamicFetchBuilder, NativeQuery.ReturnProperty { - private Fetchable fetchable; + private final Fetchable fetchable; private final List columnNames; public DynamicFetchBuilderStandard(Fetchable fetchable) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/spi/Limit.java b/hibernate-core/src/main/java/org/hibernate/query/spi/Limit.java index ebd58fa722aa..5fc9837d2fbe 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/spi/Limit.java +++ b/hibernate-core/src/main/java/org/hibernate/query/spi/Limit.java @@ -4,6 +4,8 @@ */ package org.hibernate.query.spi; +import java.util.Objects; + /** * Paging limits * @@ -39,8 +41,8 @@ public Integer getFirstRow() { } public int getFirstRowJpa() { - // JPA defines this return as a primitive with magic values... - // - specifically the "magic number" 0 (ZERO) as defined by the spec. + // JPA defines this return as a primitive with magic values: + // specifically, the "magic number" 0 (ZERO) as defined by the spec. return firstRow == null ? 0 : firstRow; } @@ -53,29 +55,19 @@ public Integer getMaxRows() { } public int getMaxRowsJpa() { - // JPA defines this return as a primitive with magic values... - // - specifically the "magic number" Integer.MAX_VALUE as defined by the spec. + // JPA defines this return as a primitive with magic values: + // specifically, the "magic number" Integer.MAX_VALUE as defined by the spec return maxRows == null ? Integer.MAX_VALUE : maxRows; } public void setMaxRows(int maxRows) { - if ( maxRows < 0 ) { - // treat negatives specially as meaning no limit... - this.maxRows = null; - } - else { - this.maxRows = maxRows; - } + // treat negatives specially as meaning no limit + this.maxRows = maxRows < 0 ? null : maxRows; } public void setMaxRows(Integer maxRows) { - if ( maxRows != null && maxRows < 0 ) { - // treat negatives specially as meaning no limit... - this.maxRows = null; - } - else { - this.maxRows = maxRows; - } + // treat negatives specially as meaning no limit + this.maxRows = maxRows != null && maxRows < 0 ? null : maxRows; } public boolean isCompatible(Limit limit) { @@ -85,11 +77,10 @@ public boolean isCompatible(Limit limit) { else if ( this == limit ) { return true; } - - if ( firstRow != null ? !firstRow.equals( limit.firstRow ) : limit.firstRow != null ) { - return false; + else { + return Objects.equals( firstRow, limit.firstRow ) + && Objects.equals( maxRows, limit.maxRows ); } - return maxRows != null ? maxRows.equals( limit.maxRows ) : limit.maxRows == null; } } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/FunctionRenderer.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/FunctionRenderer.java index bb512c64f2df..0ca6f6154078 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/FunctionRenderer.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/FunctionRenderer.java @@ -34,7 +34,7 @@ default void render( SqlAppender sqlAppender, List sqlAstArguments, SqlAstTranslator walker) { - render( sqlAppender, sqlAstArguments, (ReturnableType) null, walker ); + render( sqlAppender, sqlAstArguments, null, walker ); } void render( diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/MultipatternSqmFunctionDescriptor.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/MultipatternSqmFunctionDescriptor.java index 92b7fa04672d..ea2b8d7c7153 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/MultipatternSqmFunctionDescriptor.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/MultipatternSqmFunctionDescriptor.java @@ -29,7 +29,7 @@ */ public class MultipatternSqmFunctionDescriptor extends AbstractSqmFunctionDescriptor { - private SqmFunctionDescriptor[] functions; + private final SqmFunctionDescriptor[] functions; private String argumentListSignature; private static int first(SqmFunctionDescriptor[] functions) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/KeyBasedPagination.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/KeyBasedPagination.java index eec0f0a6710a..a6c7e1c62cac 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/KeyBasedPagination.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/KeyBasedPagination.java @@ -14,7 +14,6 @@ import org.hibernate.query.sqm.NodeBuilder; import org.hibernate.query.sqm.tree.domain.SqmPath; import org.hibernate.query.sqm.tree.from.SqmFrom; -import org.hibernate.query.sqm.tree.from.SqmRoot; import org.hibernate.query.sqm.tree.predicate.SqmPredicate; import org.hibernate.query.sqm.tree.select.SqmQuerySpec; import org.hibernate.query.sqm.tree.select.SqmSelectStatement; @@ -40,10 +39,9 @@ static SqmSelectStatement> paginate( final List> items = querySpec.getSelectClause().getSelectionItems(); if ( items.size() == 1 ) { final JpaSelection selected = items.get(0); - if ( selected instanceof SqmRoot) { + if ( selected instanceof SqmFrom root ) { statement.orderBy( keyDefinition.stream().map( order -> sortSpecification( statement, order ) ) .collect( toList() ) ); - final SqmFrom root = (SqmFrom) selected; statement.select( keySelection( keyDefinition, root, selected, builder ) ); if ( keyValues != null ) { final SqmPredicate restriction = keyRestriction( keyDefinition, keyValues, root, builder ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmCriteriaNodeBuilder.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmCriteriaNodeBuilder.java index f003b728ce14..6eea28b818e2 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmCriteriaNodeBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmCriteriaNodeBuilder.java @@ -4130,7 +4130,7 @@ public SqmExpression> arrayPositionsList(Expression array @Override public SqmExpression arrayLength(Expression arrayExpression) { return getFunctionDescriptor( "array_length" ).generateSqmExpression( - asList( (SqmExpression) arrayExpression ), + Collections.singletonList( (SqmExpression) arrayExpression ), null, queryEngine ); @@ -4727,7 +4727,7 @@ public SqmExpression> collectionPositionsList( @Override public SqmExpression collectionLength(Expression> collectionExpression) { return getFunctionDescriptor( "array_length" ).generateSqmExpression( - asList( (SqmExpression) collectionExpression ), + Collections.singletonList( (SqmExpression) collectionExpression ), null, queryEngine ); @@ -5745,7 +5745,7 @@ public SqmExpression xmlconcat(List> elements) { @Override public SqmExpression xmlpi(String elementName) { return getFunctionDescriptor( "xmlpi" ).generateSqmExpression( - asList( literal( elementName ) ), + Collections.singletonList( literal( elementName ) ), null, queryEngine ); @@ -5819,7 +5819,7 @@ public SqmSetReturningFunction setReturningFunction(String name, Expressi @Override public SqmSetReturningFunction unnestArray(Expression array) { return getSetReturningFunctionDescriptor( "unnest" ).generateSqmExpression( - asList( (SqmTypedNode) array ), + Collections.singletonList( (SqmTypedNode) array ), queryEngine ); } @@ -5827,7 +5827,7 @@ public SqmSetReturningFunction unnestArray(Expression array) { @Override public SqmSetReturningFunction unnestCollection(Expression> collection) { return getSetReturningFunctionDescriptor( "unnest" ).generateSqmExpression( - asList( (SqmTypedNode) collection ), + Collections.singletonList( (SqmTypedNode) collection ), queryEngine ); } @@ -5955,7 +5955,7 @@ public SqmJsonTableFunction jsonTable(Expression jsonDocument, String json public SqmJsonTableFunction jsonTable(Expression jsonDocument, @Nullable Expression jsonPath) { return (SqmJsonTableFunction) getSetReturningFunctionDescriptor( "json_table" ).generateSqmExpression( jsonPath == null - ? asList( (SqmTypedNode) jsonDocument ) + ? Collections.singletonList( (SqmTypedNode) jsonDocument ) : asList( (SqmTypedNode) jsonDocument, (SqmTypedNode) jsonPath ), queryEngine ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmMappingModelHelper.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmMappingModelHelper.java index 80ea73487410..9487dd141351 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmMappingModelHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmMappingModelHelper.java @@ -177,8 +177,7 @@ private static ModelPart resolveSqmPath( MappingMetamodel domainModel, Function tableGroupLocator) { - if ( sqmPath instanceof SqmTreatedPath ) { - final SqmTreatedPath treatedPath = (SqmTreatedPath) sqmPath; + if ( sqmPath instanceof SqmTreatedPath treatedPath ) { final ManagedDomainType treatTarget = treatedPath.getTreatTarget(); if ( treatTarget.getPersistenceType() == Type.PersistenceType.ENTITY ) { final EntityDomainType treatTargetType = (EntityDomainType) treatTarget; @@ -187,8 +186,7 @@ private static ModelPart resolveSqmPath( } // see if the LHS is treated - if ( sqmPath.getLhs() instanceof SqmTreatedPath ) { - final SqmTreatedPath treatedPath = (SqmTreatedPath) sqmPath.getLhs(); + if ( sqmPath.getLhs() instanceof SqmTreatedPath treatedPath ) { final ManagedDomainType treatTarget = treatedPath.getTreatTarget(); if ( treatTarget.getPersistenceType() == Type.PersistenceType.ENTITY ) { final EntityPersister container = domainModel.findEntityDescriptor( treatTarget.getTypeName() ); @@ -218,8 +216,7 @@ private static ModelPart resolveSqmPath( if ( sqmPath.getLhs() == null ) { final SqmPathSource referencedPathSource = sqmPath.getReferencedPathSource(); - if ( referencedPathSource instanceof EntityDomainType ) { - final EntityDomainType entityDomainType = (EntityDomainType) referencedPathSource; + if ( referencedPathSource instanceof EntityDomainType entityDomainType ) { return domainModel.findEntityDescriptor( entityDomainType.getHibernateEntityName() ); } assert referencedPathSource instanceof SqmCteTable; @@ -256,8 +253,7 @@ public static EntityMappingType resolveExplicitTreatTarget( SqmPath sqmPath, SqmToSqlAstConverter converter) { final SqmPath parentPath = sqmPath.getLhs(); - if ( parentPath instanceof SqmTreatedPath ) { - final SqmTreatedPath treatedPath = (SqmTreatedPath) parentPath; + if ( parentPath instanceof SqmTreatedPath treatedPath ) { final ManagedDomainType treatTarget = treatedPath.getTreatTarget(); if ( treatTarget.getPersistenceType() == Type.PersistenceType.ENTITY ) { return resolveEntityPersister( diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmSelectionQueryImpl.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmSelectionQueryImpl.java index 9f207ecb065b..bd99a8c89e1b 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmSelectionQueryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmSelectionQueryImpl.java @@ -217,13 +217,13 @@ SqmSelectionQueryImpl(AbstractSqmSelectionQuery original, KeyedPage ke // Just use the original parameter bindings since this object is never going to be mutated this.parameterBindings = parameterMetadata.createBindings( original.getSession().getSessionFactory() ); // Don't remove this cast. This is here to work around this bug: https://bugs.openjdk.org/browse/JDK-8340443 - (( DomainQueryExecutionContext) original ).getQueryParameterBindings().visitBindings( + //noinspection RedundantCast + final QueryParameterBindings bindings = ((DomainQueryExecutionContext) original).getQueryParameterBindings(); + bindings.visitBindings( (parameter, binding) -> { //noinspection unchecked final QueryParameterBinding parameterBinding = (QueryParameterBinding) this.parameterBindings.getBinding( parameter ); - //noinspection unchecked - final BindableType bindType = (BindableType) binding.getBindType(); final TemporalType explicitTemporalPrecision = binding.getExplicitTemporalPrecision(); if ( explicitTemporalPrecision != null ) { if ( binding.isMultiValued() ) { @@ -238,6 +238,8 @@ SqmSelectionQueryImpl(AbstractSqmSelectionQuery original, KeyedPage ke } } else { + //noinspection unchecked + final BindableType bindType = (BindableType) binding.getBindType(); if ( binding.isMultiValued() ) { parameterBinding.setBindValues( binding.getBindValues(), bindType ); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/spi/SqmCreationHelper.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/spi/SqmCreationHelper.java index 8b2ac39d116a..3a9a3b19e73c 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/spi/SqmCreationHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/spi/SqmCreationHelper.java @@ -122,9 +122,8 @@ public static SqmPredicate combinePredicates(SqmPredicate baseRestriction, SqmPr final SqmJunctionPredicate combinedPredicate; - if ( baseRestriction instanceof SqmJunctionPredicate ) { + if ( baseRestriction instanceof SqmJunctionPredicate junction ) { // we already had multiple before - final SqmJunctionPredicate junction = (SqmJunctionPredicate) baseRestriction; if ( junction.getPredicates().isEmpty() ) { return incomingRestriction; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/AggregateColumnAssignmentHandler.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/AggregateColumnAssignmentHandler.java index f780df875257..139fd37a6214 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/AggregateColumnAssignmentHandler.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/AggregateColumnAssignmentHandler.java @@ -58,8 +58,7 @@ private static void collectRootAggregates( for ( int i = 0; i < numberOfAttributeMappings; i++ ) { final AttributeMapping attributeMapping = mappingType.getAttributeMapping( i ); final MappingType mappedType = attributeMapping.getMappedType(); - if ( mappedType instanceof EmbeddableMappingType ) { - final EmbeddableMappingType embeddableMappingType = (EmbeddableMappingType) mappedType; + if ( mappedType instanceof EmbeddableMappingType embeddableMappingType ) { final SelectableMapping aggregateMapping = embeddableMappingType.getAggregateMapping(); if ( aggregateMapping == null ) { collectRootAggregates( rootAggregates, embeddableMappingType ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/BaseSqmToSqlAstConverter.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/BaseSqmToSqlAstConverter.java index d36d467f9c0e..e9c4c4f1058d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/BaseSqmToSqlAstConverter.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/BaseSqmToSqlAstConverter.java @@ -456,6 +456,7 @@ import static org.hibernate.query.sqm.internal.SqmUtil.isFkOptimizationAllowed; import static org.hibernate.query.sqm.sql.AggregateColumnAssignmentHandler.forEntityDescriptor; import static org.hibernate.sql.ast.spi.SqlAstTreeHelper.combinePredicates; +import static org.hibernate.type.spi.TypeConfiguration.getSqlTemporalType; import static org.hibernate.type.spi.TypeConfiguration.isDuration; /** @@ -488,7 +489,7 @@ public abstract class BaseSqmToSqlAstConverter extends Base private boolean deduplicateSelectionItems; private ForeignKeyDescriptor.Nature currentlyResolvingForeignKeySide; private SqmStatement currentSqmStatement; - private Stack sqmQueryPartStack = new StandardStack<>(); + private final Stack sqmQueryPartStack = new StandardStack<>(); private CteContainer cteContainer; /** * A map from {@link SqmCteTable#getCteName()} to the final SQL name. @@ -6658,9 +6659,8 @@ public Object visitBinaryArithmeticExpression(SqmBinaryArithmetic expression) inferrableTypeAccessStack.pop(); final boolean durationToRight = isDuration( rightOperand.getNodeType() ); - final TypeConfiguration typeConfiguration = getCreationContext().getMappingMetamodel().getTypeConfiguration(); - final TemporalType temporalTypeToLeft = typeConfiguration.getSqlTemporalType( leftOperandType ); - final TemporalType temporalTypeToRight = typeConfiguration.getSqlTemporalType( rightOperandType ); + final TemporalType temporalTypeToLeft = getSqlTemporalType( leftOperandType ); + final TemporalType temporalTypeToRight = getSqlTemporalType( rightOperandType ); final boolean temporalTypeSomewhereToLeft = adjustedTimestamp != null || temporalTypeToLeft != null; if ( temporalTypeToLeft != null && durationToRight ) { @@ -8373,7 +8373,7 @@ public Object visitNamedExpression(SqmNamedExpression expression) { public Fetch visitIdentifierFetch(EntityResultGraphNode fetchParent) { final EntityIdentifierMapping identifierMapping = fetchParent.getReferencedMappingContainer() .getIdentifierMapping(); - return createFetch( fetchParent, (Fetchable) identifierMapping, false ); + return createFetch( fetchParent, identifierMapping, false ); } private Fetch createFetch(FetchParent fetchParent, Fetchable fetchable, Boolean isKeyFetchable) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/FromClauseIndex.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/FromClauseIndex.java index d6836bbedf99..1365a2251a71 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/FromClauseIndex.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/FromClauseIndex.java @@ -60,8 +60,7 @@ public void register(SqmPath sqmPath, TableGroup tableGroup, NavigablePath id } } - if ( sqmPath instanceof SqmAttributeJoin ) { - final SqmAttributeJoin sqmJoin = (SqmAttributeJoin) sqmPath; + if ( sqmPath instanceof SqmAttributeJoin sqmJoin ) { if ( sqmJoin.isFetched() ) { registerJoinFetch( sqmJoin, identifierForTableGroup ); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/AnyDiscriminatorPathInterpretation.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/AnyDiscriminatorPathInterpretation.java index 570d285634ae..dea236193cfe 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/AnyDiscriminatorPathInterpretation.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/AnyDiscriminatorPathInterpretation.java @@ -27,8 +27,7 @@ public static AnyDiscriminatorPathInterpretation from( final ModelPart subPart = tableGroup.getModelPart(); final DiscriminatedAssociationModelPart mapping; - if ( subPart instanceof PluralAttributeMapping ) { - PluralAttributeMapping pluralAttributeMapping = (PluralAttributeMapping) subPart; + if ( subPart instanceof PluralAttributeMapping pluralAttributeMapping ) { mapping = (DiscriminatedAssociationModelPart) pluralAttributeMapping.getElementDescriptor(); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/BasicValuedPathInterpretation.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/BasicValuedPathInterpretation.java index bd0a6ca4bde8..0da208fdd096 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/BasicValuedPathInterpretation.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/BasicValuedPathInterpretation.java @@ -70,8 +70,7 @@ public static BasicValuedPathInterpretation from( } else { modelPartContainer = tableGroup.getModelPart(); - if ( jpaQueryComplianceEnabled && lhs.getNodeType() instanceof EntityDomainType ) { - final EntityDomainType entityDomainType = (EntityDomainType) lhs.getNodeType(); + if ( jpaQueryComplianceEnabled && lhs.getNodeType() instanceof EntityDomainType entityDomainType ) { final MappingMetamodel mappingMetamodel = sqlAstCreationState.getCreationContext() .getSessionFactory() .getRuntimeMetamodels() diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/EntityValuedPathInterpretation.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/EntityValuedPathInterpretation.java index d31c37c0be60..292531ad01fa 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/EntityValuedPathInterpretation.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/EntityValuedPathInterpretation.java @@ -61,12 +61,10 @@ public static EntityValuedPathInterpretation from( .getFromClauseAccess() .findTableGroup( sqmPath.getNavigablePath() ); final EntityValuedModelPart pathMapping = (EntityValuedModelPart) tableGroup.getModelPart(); - if ( inferredMapping instanceof EntityAssociationMapping ) { - final EntityAssociationMapping inferredAssociation = (EntityAssociationMapping) inferredMapping; - if ( pathMapping instanceof EntityAssociationMapping && inferredMapping != pathMapping ) { + if ( inferredMapping instanceof EntityAssociationMapping inferredAssociation ) { + if ( pathMapping instanceof EntityAssociationMapping pathAssociation && inferredMapping != pathMapping ) { // In here, the inferred mapping and the actual path mapping are association mappings, // but for different associations, so we have to check if both associations point to the same target - final EntityAssociationMapping pathAssociation = (EntityAssociationMapping) pathMapping; final ModelPart pathTargetPart = pathAssociation.getForeignKeyDescriptor() .getPart( pathAssociation.getSideNature().inverse() ); final ModelPart inferredTargetPart = inferredAssociation.getForeignKeyDescriptor() @@ -158,8 +156,7 @@ private static EntityValuedPathInterpretation from( final TableGroup resultTableGroup; // For association mappings where the FK optimization i.e. use of the parent table group is allowed, // we try to make use of it and the FK model part if possible based on the inferred mapping - if ( mapping instanceof EntityAssociationMapping ) { - final EntityAssociationMapping associationMapping = (EntityAssociationMapping) mapping; + if ( mapping instanceof EntityAssociationMapping associationMapping ) { final ModelPart keyTargetMatchPart = associationMapping.getForeignKeyDescriptor().getPart( associationMapping.getSideNature() ); @@ -376,8 +373,7 @@ private static boolean isSelected( } private static boolean selectionContains(Selection selection, NavigablePath path, NavigablePath tableGroupPath) { - if ( selection instanceof SqmPath ) { - final SqmPath sqmPath = (SqmPath) selection; + if ( selection instanceof SqmPath sqmPath ) { // Expansion is needed if the table group is null, i.e. we're in a top level query where EVPs are always // expanded to all columns, or if the selection is on the same table (lhs) as the group by expression ... return ( tableGroupPath == null || sqmPath.getLhs() != null && sqmPath.getLhs().getNavigablePath().equals( tableGroupPath ) ) diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/SqlAstQueryPartProcessingStateImpl.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/SqlAstQueryPartProcessingStateImpl.java index a6071ecc88bc..837b47519c52 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/SqlAstQueryPartProcessingStateImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/SqlAstQueryPartProcessingStateImpl.java @@ -151,8 +151,7 @@ else if ( fetchParent != null ) { if ( selectionMap != null ) { existingSelection = selectionMap.get( expression ); if ( existingSelection != null ) { - if ( existingSelection instanceof SqlSelection ) { - final SqlSelection sqlSelection = (SqlSelection) existingSelection; + if ( existingSelection instanceof SqlSelection sqlSelection ) { if ( sqlSelection.getExpressionType() == expression.getExpressionType() ) { return sqlSelection; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/SqmParameterInterpretation.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/SqmParameterInterpretation.java index 7c9d5a5fa6aa..1282401e0cc8 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/SqmParameterInterpretation.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/SqmParameterInterpretation.java @@ -37,8 +37,7 @@ public SqmParameterInterpretation( List jdbcParameters, MappingModelExpressible valueMapping) { - if ( valueMapping instanceof EntityAssociationMapping ) { - final EntityAssociationMapping mapping = (EntityAssociationMapping) valueMapping; + if ( valueMapping instanceof EntityAssociationMapping mapping ) { this.valueMapping = mapping.getForeignKeyDescriptor().getPart( mapping.getSideNature() ); } else if ( valueMapping instanceof EntityValuedModelPart ) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralPartJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralPartJoin.java index c5d71c5cd452..c8010f529dd3 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralPartJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralPartJoin.java @@ -67,7 +67,7 @@ public SqmPluralPartJoin copy(SqmCopyContext context) { if ( existing != null ) { return existing; } - final SqmFrom lhsCopy = (SqmFrom) getLhs().copy( context ); + final SqmFrom lhsCopy = getLhs().copy( context ); final SqmPluralPartJoin path = context.registerCopy( this, new SqmPluralPartJoin<>( diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedPluralPartJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedPluralPartJoin.java index fee1cd07f08e..d18bcf6e563c 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedPluralPartJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedPluralPartJoin.java @@ -120,19 +120,19 @@ public SqmTreatedPluralPartJoin treatAs(Class treatJavaType, String alias) { @Override public SqmTreatedPluralPartJoin treatAs(EntityDomainType treatTarget, String alias) { //noinspection unchecked - return (SqmTreatedPluralPartJoin) super.treatAs( treatTarget, alias ); + return super.treatAs( treatTarget, alias ); } @Override public SqmTreatedPluralPartJoin treatAs(Class treatJavaType, String alias, boolean fetch) { //noinspection unchecked - return (SqmTreatedPluralPartJoin) super.treatAs( treatJavaType, alias, fetch ); + return super.treatAs( treatJavaType, alias, fetch ); } @Override public SqmTreatedPluralPartJoin treatAs(EntityDomainType treatTarget, String alias, boolean fetch) { //noinspection unchecked - return (SqmTreatedPluralPartJoin) super.treatAs( treatTarget, alias, fetch ); + return super.treatAs( treatTarget, alias, fetch ); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/AbstractSqmParameter.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/AbstractSqmParameter.java index 33a35f8b0d7a..2abe363dcceb 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/AbstractSqmParameter.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/AbstractSqmParameter.java @@ -30,9 +30,7 @@ public AbstractSqmParameter( @Override public void applyInferableType(@Nullable SqmExpressible type) { if ( type != null ) { - if ( type instanceof PluralPersistentAttribute ) { - final PluralPersistentAttribute pluralPersistentAttribute = - (PluralPersistentAttribute) type; + if ( type instanceof PluralPersistentAttribute pluralPersistentAttribute ) { internalApplyInferableType( pluralPersistentAttribute.getElementType() ); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmExpressionHelper.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmExpressionHelper.java index 453118405931..096c074371d3 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmExpressionHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmExpressionHelper.java @@ -155,8 +155,7 @@ public static SqmPath findPath(SqmExpression expression, SqmExpressible if ( expression instanceof SqmPath ) { return (SqmPath) expression; } - else if ( expression instanceof SqmBinaryArithmetic ) { - final SqmBinaryArithmetic binaryArithmetic = (SqmBinaryArithmetic) expression; + else if ( expression instanceof SqmBinaryArithmetic binaryArithmetic ) { final SqmPath lhs = findPath( binaryArithmetic.getLeftHandOperand(), nodeType ); if ( lhs != null ) { return lhs; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmFieldLiteral.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmFieldLiteral.java index 1d9e8673bce5..6252d7843663 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmFieldLiteral.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmFieldLiteral.java @@ -39,7 +39,7 @@ public class SqmFieldLiteral implements SqmExpression, SqmExpressible, private final String fieldName; private final NodeBuilder nodeBuilder; - private SqmExpressible expressible; + private final SqmExpressible expressible; public SqmFieldLiteral( Field field, diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameter.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameter.java index 800df60da250..220eed046232 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameter.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameter.java @@ -76,14 +76,12 @@ public interface SqmParameter extends SqmExpression, JpaParameterExpressio */ @Override default int compareTo(SqmParameter anotherParameter) { - if ( this instanceof SqmNamedParameter ) { - final SqmNamedParameter one = (SqmNamedParameter) this; + if ( this instanceof SqmNamedParameter one ) { return anotherParameter instanceof SqmNamedParameter ? one.getName().compareTo( anotherParameter.getName() ) : -1; } - else if ( this instanceof SqmPositionalParameter ) { - final SqmPositionalParameter one = (SqmPositionalParameter) this; + else if ( this instanceof SqmPositionalParameter one ) { return anotherParameter instanceof SqmPositionalParameter ? one.getPosition().compareTo( anotherParameter.getPosition() ) : 1; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmRoot.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmRoot.java index af8f3a9672ed..965b11c999f9 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmRoot.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmRoot.java @@ -192,7 +192,7 @@ public boolean containsOnlyInnerJoins() { @Override public SqmTreatedFrom treatAs(Class treatJavaType) throws PathException { - return (SqmTreatedFrom) treatAs( nodeBuilder().getDomainModel().entity( treatJavaType ) ); + return treatAs( nodeBuilder().getDomainModel().entity( treatJavaType ) ); } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmJunctionPredicate.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmJunctionPredicate.java index a9381e4ba26d..88696f669943 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmJunctionPredicate.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmJunctionPredicate.java @@ -115,8 +115,7 @@ public void appendHqlString(StringBuilder sb) { } private void appendJunctionHqlString(SqmPredicate p, StringBuilder sb) { - if ( p instanceof SqmJunctionPredicate ) { - final SqmJunctionPredicate junction = (SqmJunctionPredicate) p; + if ( p instanceof SqmJunctionPredicate junction ) { // If we have the same nature, or if this is a disjunction and the operand is a conjunction, // then we don't need parenthesis, because the AND operator binds stronger if ( booleanOperator == junction.getOperator() || booleanOperator == BooleanOperator.OR ) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQueryGroup.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQueryGroup.java index 093d5edf3ca6..1ef41f26fbdd 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQueryGroup.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQueryGroup.java @@ -172,8 +172,7 @@ private void validateQueryGroupFetchStructure(List> ty "Select items of the same index must have the same java type across all query parts" ); } - if ( firstSqmSelection instanceof SqmFrom ) { - final SqmFrom firstFrom = (SqmFrom) firstSqmSelection; + if ( firstSqmSelection instanceof SqmFrom firstFrom ) { final SqmFrom from = (SqmFrom) selections.get( j ).getSelectableNode(); validateFetchesMatch( firstFrom, from ); } @@ -187,14 +186,12 @@ private void validateFetchesMatch(SqmFrom firstFrom, SqmFrom from) { final Iterator> joinIter = from.getSqmJoins().iterator(); while ( firstJoinIter.hasNext() ) { final SqmJoin firstSqmJoin = firstJoinIter.next(); - if ( firstSqmJoin instanceof SqmAttributeJoin ) { - final SqmAttributeJoin firstAttrJoin = (SqmAttributeJoin) firstSqmJoin; + if ( firstSqmJoin instanceof SqmAttributeJoin firstAttrJoin ) { if ( firstAttrJoin.isFetched() ) { SqmAttributeJoin matchingAttrJoin = null; while ( joinIter.hasNext() ) { final SqmJoin sqmJoin = joinIter.next(); - if ( sqmJoin instanceof SqmAttributeJoin ) { - final SqmAttributeJoin attrJoin = (SqmAttributeJoin) sqmJoin; + if ( sqmJoin instanceof SqmAttributeJoin attrJoin ) { if ( attrJoin.isFetched() ) { matchingAttrJoin = attrJoin; break; @@ -213,8 +210,7 @@ private void validateFetchesMatch(SqmFrom firstFrom, SqmFrom from) { // At this point, the other iterator should only contain non-fetch joins while ( joinIter.hasNext() ) { final SqmJoin sqmJoin = joinIter.next(); - if ( sqmJoin instanceof SqmAttributeJoin ) { - final SqmAttributeJoin attrJoin = (SqmAttributeJoin) sqmJoin; + if ( sqmJoin instanceof SqmAttributeJoin attrJoin ) { if ( attrJoin.isFetched() ) { throw new SemanticException( "All query parts in a query group must have the same join fetches in the same order" diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQuerySpec.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQuerySpec.java index 6fb48693ca7b..3b79cb808376 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQuerySpec.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmQuerySpec.java @@ -166,8 +166,7 @@ public boolean producesUniqueResults() { while ( !fromNodes.isEmpty() ) { final SqmFrom fromNode = fromNodes.remove( fromNodes.size() - 1 ); for ( SqmJoin sqmJoin : fromNode.getSqmJoins() ) { - if ( sqmJoin instanceof SqmAttributeJoin ) { - final SqmAttributeJoin join = (SqmAttributeJoin) sqmJoin; + if ( sqmJoin instanceof SqmAttributeJoin join ) { if ( join.getAttribute().isCollection() ) { // Collections joins always alter cardinality return false; @@ -189,8 +188,7 @@ public boolean containsCollectionFetches() { while ( !fromNodes.isEmpty() ) { final SqmFrom fromNode = fromNodes.remove( fromNodes.size() - 1 ); for ( SqmJoin sqmJoin : fromNode.getSqmJoins() ) { - if ( sqmJoin instanceof SqmAttributeJoin ) { - final SqmAttributeJoin join = (SqmAttributeJoin) sqmJoin; + if ( sqmJoin instanceof SqmAttributeJoin join ) { if ( join.isFetched() && join.getAttribute().isCollection() ) { return true; } @@ -502,14 +500,12 @@ public void validateFetchOwners() { } private void collectSelectedFromSet(Set> selectedFromSet, SqmSelectableNode selectableNode) { - if ( selectableNode instanceof SqmJpaCompoundSelection ) { - final SqmJpaCompoundSelection compoundSelection = (SqmJpaCompoundSelection) selectableNode; + if ( selectableNode instanceof SqmJpaCompoundSelection compoundSelection ) { for ( SqmSelectableNode selectionItem : compoundSelection.getSelectionItems() ) { collectSelectedFromSet( selectedFromSet, selectionItem ); } } - else if ( selectableNode instanceof SqmDynamicInstantiation ) { - final SqmDynamicInstantiation instantiation = (SqmDynamicInstantiation) selectableNode; + else if ( selectableNode instanceof SqmDynamicInstantiation instantiation ) { for ( SqmDynamicInstantiationArgument selectionItem : instantiation.getArguments() ) { collectSelectedFromSet( selectedFromSet, selectionItem.getSelectableNode() ); } @@ -517,15 +513,13 @@ else if ( selectableNode instanceof SqmDynamicInstantiation ) { else if ( selectableNode instanceof SqmFrom ) { collectSelectedFromSet( selectedFromSet, (SqmFrom) selectableNode ); } - else if ( selectableNode instanceof SqmEntityValuedSimplePath ) { - final SqmEntityValuedSimplePath path = (SqmEntityValuedSimplePath) selectableNode; + else if ( selectableNode instanceof SqmEntityValuedSimplePath path ) { if ( CollectionPart.Nature.fromNameExact( path.getReferencedPathSource().getPathName() ) != null && path.getLhs() instanceof SqmFrom ) { collectSelectedFromSet( selectedFromSet, (SqmFrom) path.getLhs() ); } } - else if ( selectableNode instanceof SqmEmbeddedValuedSimplePath ) { - final SqmEmbeddedValuedSimplePath path = (SqmEmbeddedValuedSimplePath) selectableNode; + else if ( selectableNode instanceof SqmEmbeddedValuedSimplePath path ) { assertEmbeddableCollections( path.getNavigablePath(), (EmbeddableDomainType) path.getSqmType() ); } } @@ -545,8 +539,7 @@ private void collectSelectedFromSet(Set> selectedFromSet, SqmFrom< private void validateFetchOwners(Set> selectedFromSet, SqmFrom joinContainer) { for ( SqmJoin sqmJoin : joinContainer.getSqmJoins() ) { - if ( sqmJoin instanceof SqmAttributeJoin ) { - final SqmAttributeJoin attributeJoin = (SqmAttributeJoin) sqmJoin; + if ( sqmJoin instanceof SqmAttributeJoin attributeJoin ) { if ( attributeJoin.isFetched() ) { assertFetchOwner( selectedFromSet, attributeJoin.getLhs(), sqmJoin ); // Only need to check the first level @@ -554,8 +547,7 @@ private void validateFetchOwners(Set> selectedFromSet, SqmFrom sqmTreat : sqmJoin.getSqmTreats() ) { - if ( sqmTreat instanceof SqmAttributeJoin ) { - final SqmAttributeJoin attributeJoin = (SqmAttributeJoin) sqmTreat; + if ( sqmTreat instanceof SqmAttributeJoin attributeJoin ) { if ( attributeJoin.isFetched() ) { assertFetchOwner( selectedFromSet, attributeJoin.getLhs(), attributeJoin ); // Only need to check the first level diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSortSpecification.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSortSpecification.java index 2d28925d885b..06285b16a019 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSortSpecification.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSortSpecification.java @@ -144,12 +144,11 @@ public boolean equals(Object o) { if ( this == o ) { return true; } - else if ( !(o instanceof SqmSortSpecification) ) { + else if ( !(o instanceof SqmSortSpecification that) ) { return false; } else { // used in SqmInterpretationsKey.equals() - SqmSortSpecification that = (SqmSortSpecification) o; return Objects.equals( sortExpression, that.sortExpression ) && sortOrder == that.sortOrder && nullPrecedence == that.nullPrecedence; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSubQuery.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSubQuery.java index b7d82d523c18..bde8f12ba25a 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSubQuery.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSubQuery.java @@ -503,8 +503,7 @@ public SqmRoot correlate(Root parentRoot) { @Override public SqmCorrelatedJoin correlate(Join join) { - if ( join instanceof PluralJoin ) { - final PluralJoin pluralJoin = (PluralJoin) join; + if ( join instanceof PluralJoin pluralJoin ) { switch ( pluralJoin.getModel().getCollectionType() ) { case COLLECTION: return correlate( (CollectionJoin) join ); @@ -576,7 +575,7 @@ public JpaEntityJoin correlate(JpaEntityJoin parentEntityJoin) { if ( root instanceof SqmCorrelation ) { for ( SqmJoin sqmJoin : root.getSqmJoins() ) { if ( sqmJoin instanceof SqmCorrelation && sqmJoin instanceof Join ) { - correlatedJoins.add( (Join) sqmJoin ); + correlatedJoins.add( sqmJoin ); } } } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tuple/internal/AnonymousTupleEntityValuedModelPart.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tuple/internal/AnonymousTupleEntityValuedModelPart.java index caf4cefbf2c4..90e05557c285 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tuple/internal/AnonymousTupleEntityValuedModelPart.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tuple/internal/AnonymousTupleEntityValuedModelPart.java @@ -289,8 +289,7 @@ private Consumer createTableGroupInitializerCallback( final SqlExpressionResolver sqlExpressionResolver = creationState.getSqlExpressionResolver(); - if ( delegate instanceof OneToManyCollectionPart ) { - final OneToManyCollectionPart oneToMany = (OneToManyCollectionPart) delegate; + if ( delegate instanceof OneToManyCollectionPart oneToMany ) { final PluralAttributeMapping pluralAttribute = oneToMany.getCollectionDescriptor().getAttributeMapping(); final ModelPart keyPart = pluralAttribute.getKeyDescriptor().getKeyPart(); @@ -481,9 +480,7 @@ public LazyTableGroup createRootTableGroupJoin( @Override public boolean canUseParentTableGroup(TableGroupProducer producer, NavigablePath navigablePath, ValuedModelPart valuedModelPart) { final ModelPart foreignKeyPart = getForeignKeyPart(); - if ( foreignKeyPart instanceof AnonymousTupleNonAggregatedEntityIdentifierMapping ) { - final AnonymousTupleNonAggregatedEntityIdentifierMapping identifierMapping = - (AnonymousTupleNonAggregatedEntityIdentifierMapping) foreignKeyPart; + if ( foreignKeyPart instanceof AnonymousTupleNonAggregatedEntityIdentifierMapping identifierMapping ) { final int numberOfFetchables = identifierMapping.getNumberOfFetchables(); for ( int i = 0; i< numberOfFetchables; i++ ) { if ( valuedModelPart == identifierMapping.getFetchable( i ) ) { diff --git a/hibernate-core/src/main/java/org/hibernate/resource/jdbc/internal/AbstractLogicalConnectionImplementor.java b/hibernate-core/src/main/java/org/hibernate/resource/jdbc/internal/AbstractLogicalConnectionImplementor.java index 1d9cc6b7bbd2..eede4828fa0a 100644 --- a/hibernate-core/src/main/java/org/hibernate/resource/jdbc/internal/AbstractLogicalConnectionImplementor.java +++ b/hibernate-core/src/main/java/org/hibernate/resource/jdbc/internal/AbstractLogicalConnectionImplementor.java @@ -35,7 +35,7 @@ public PhysicalJdbcTransaction getPhysicalJdbcTransaction() { protected void errorIfClosed() { if ( !isOpen() ) { - throw new IllegalStateException( this.toString() + " is closed" ); + throw new IllegalStateException( this + " is closed" ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/resource/transaction/backend/jta/internal/DdlTransactionIsolatorJtaImpl.java b/hibernate-core/src/main/java/org/hibernate/resource/transaction/backend/jta/internal/DdlTransactionIsolatorJtaImpl.java index 34209751852e..cd87047ef457 100644 --- a/hibernate-core/src/main/java/org/hibernate/resource/transaction/backend/jta/internal/DdlTransactionIsolatorJtaImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/resource/transaction/backend/jta/internal/DdlTransactionIsolatorJtaImpl.java @@ -41,7 +41,7 @@ public DdlTransactionIsolatorJtaImpl(JdbcContext jdbcContext) { if ( tm == null ) { throw new HibernateException( "DdlTransactionIsolatorJtaImpl could not locate TransactionManager to suspend any current transaction; " + - "base JtaPlatform impl (" + jtaPlatform.toString() + ")?" + "base JtaPlatform impl (" + jtaPlatform + ")?" ); } log.tracef( "DdlTransactionIsolatorJtaImpl#prepare: TransactionManager -> %s", tm ); diff --git a/hibernate-core/src/main/java/org/hibernate/result/internal/OutputsImpl.java b/hibernate-core/src/main/java/org/hibernate/result/internal/OutputsImpl.java index 9008b8c16593..5eda036344f3 100644 --- a/hibernate-core/src/main/java/org/hibernate/result/internal/OutputsImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/result/internal/OutputsImpl.java @@ -179,7 +179,7 @@ protected List extractResults(ResultSet resultSet) { try { //noinspection unchecked - final RowReader rowReader = (RowReader) ResultsHelper.createRowReader( + final RowReader rowReader = ResultsHelper.createRowReader( getSessionFactory(), RowTransformerStandardImpl.instance(), null, diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/SqlTreePrinter.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/SqlTreePrinter.java index dc68d35e1730..90e918a8c578 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/SqlTreePrinter.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/SqlTreePrinter.java @@ -18,7 +18,6 @@ import org.hibernate.sql.ast.tree.from.TableReferenceJoin; import org.hibernate.sql.ast.tree.from.ValuesTableReference; import org.hibernate.sql.ast.tree.insert.InsertSelectStatement; -import org.hibernate.sql.ast.tree.insert.InsertStatement; import org.hibernate.sql.ast.tree.select.QueryGroup; import org.hibernate.sql.ast.tree.select.QueryPart; import org.hibernate.sql.ast.tree.select.QuerySpec; @@ -51,15 +50,13 @@ private SqlTreePrinter() { } private void visitStatement(Statement sqlAstStatement) { - if ( sqlAstStatement instanceof SelectStatement ) { - final SelectStatement selectStatement = (SelectStatement) sqlAstStatement; + if ( sqlAstStatement instanceof SelectStatement selectStatement ) { logNode( "SelectStatement", () -> visitQueryPart( selectStatement.getQueryPart() ) ); } - else if ( sqlAstStatement instanceof DeleteStatement ) { - final DeleteStatement deleteStatement = (DeleteStatement) sqlAstStatement; + else if ( sqlAstStatement instanceof DeleteStatement deleteStatement ) { logNode( "DeleteStatement", () -> logWithIndentation( @@ -67,8 +64,7 @@ else if ( sqlAstStatement instanceof DeleteStatement ) { ) ); } - else if ( sqlAstStatement instanceof UpdateStatement ) { - final UpdateStatement updateStatement = (UpdateStatement) sqlAstStatement; + else if ( sqlAstStatement instanceof UpdateStatement updateStatement ) { logNode( "UpdateStatement", () -> logWithIndentation( @@ -76,8 +72,7 @@ else if ( sqlAstStatement instanceof UpdateStatement ) { ) ); } - else if ( sqlAstStatement instanceof InsertSelectStatement ) { - final InsertStatement insertStatement = (InsertStatement) sqlAstStatement; + else if ( sqlAstStatement instanceof InsertSelectStatement insertStatement ) { logNode( "InsertStatement", () -> logWithIndentation( diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/internal/TableGroupHelper.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/internal/TableGroupHelper.java index 30b4d3b072ef..2b71af40f81a 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/internal/TableGroupHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/internal/TableGroupHelper.java @@ -119,8 +119,7 @@ private static boolean isSimplePredicate(TableGroup tableGroup, int index) { final TableReferenceJoin tableReferenceJoin = tableGroup.getTableReferenceJoins().get( index ); final NamedTableReference joinedTableReference = tableReferenceJoin.getJoinedTableReference(); final Predicate predicate = tableReferenceJoin.getPredicate(); - if ( predicate instanceof Junction ) { - final Junction junction = (Junction) predicate; + if ( predicate instanceof Junction junction ) { if ( junction.getNature() == Junction.Nature.CONJUNCTION ) { for ( Predicate subPredicate : junction.getPredicates() ) { if ( !isComparison( subPredicate, primaryTableReference, joinedTableReference ) ) { @@ -137,8 +136,7 @@ private static boolean isSimplePredicate(TableGroup tableGroup, int index) { } private static boolean isComparison(Predicate predicate, TableReference table1, TableReference table2) { - if ( predicate instanceof ComparisonPredicate ) { - final ComparisonPredicate comparisonPredicate = (ComparisonPredicate) predicate; + if ( predicate instanceof ComparisonPredicate comparisonPredicate ) { final Expression lhs = comparisonPredicate.getLeftHandExpression(); final Expression rhs = comparisonPredicate.getRightHandExpression(); final SqlTuple lhsTuple; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstTranslator.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstTranslator.java index 8d1701444d44..c8d11bf23a92 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstTranslator.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstTranslator.java @@ -7625,13 +7625,7 @@ public void visitBooleanExpressionPredicate(BooleanExpressionPredicate booleanEx // Most databases do not support boolean expressions in a predicate context, so we render `expr=true` booleanExpressionPredicate.getExpression().accept( this ); appendSql( '=' ); - if ( booleanExpressionPredicate.isNegated() ) { - dialect.appendBooleanValueString( this, false ); - - } - else { - dialect.appendBooleanValueString( this, true ); - } + dialect.appendBooleanValueString( this, !booleanExpressionPredicate.isNegated() ); } @Override @@ -8640,7 +8634,7 @@ protected String getFromDualForSelectOnly() { protected enum LockStrategy { CLAUSE, FOLLOW_ON, - NONE; + NONE } protected static class ForUpdateClause { diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstWalker.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstWalker.java index e558132fd760..933010d7abf6 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstWalker.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstWalker.java @@ -107,13 +107,11 @@ public void visitEvery(Every every) { @Override public void visitSelfRenderingExpression(SelfRenderingExpression expression) { - if ( expression instanceof FunctionExpression ) { - final FunctionExpression functionExpression = (FunctionExpression) expression; + if ( expression instanceof FunctionExpression functionExpression ) { for ( SqlAstNode argument : functionExpression.getArguments() ) { argument.accept( this ); } - if ( expression instanceof AggregateFunctionExpression ) { - final AggregateFunctionExpression aggregateFunctionExpression = (AggregateFunctionExpression) expression; + if ( expression instanceof AggregateFunctionExpression aggregateFunctionExpression ) { if ( aggregateFunctionExpression.getFilter() != null ) { aggregateFunctionExpression.getFilter().accept( this ); } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AggregateFunctionChecker.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AggregateFunctionChecker.java index 7cd580d275b6..cae702bd26f1 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AggregateFunctionChecker.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AggregateFunctionChecker.java @@ -102,8 +102,7 @@ public void visitOver(Over over) { // Only need to visit the expression over which the window is created as the window definition can't have aggregates // If the expression is an aggregate function, this means the aggregate is used as window function, which is fine // We only care about actually aggregating functions, which might be an argument of this function though - if ( over.getExpression() instanceof AggregateFunctionExpression ) { - final AggregateFunctionExpression aggregate = (AggregateFunctionExpression) over.getExpression(); + if ( over.getExpression() instanceof AggregateFunctionExpression aggregate ) { for ( SqlAstNode argument : aggregate.getArguments() ) { argument.accept( this ); } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/SqlAstTreeHelper.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/SqlAstTreeHelper.java index b7dbf5b53ad3..f49bac31750f 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/SqlAstTreeHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/spi/SqlAstTreeHelper.java @@ -25,8 +25,7 @@ public static Predicate combinePredicates(Predicate baseRestriction, Predicate i final Junction combinedPredicate; - if ( baseRestriction instanceof Junction ) { - final Junction junction = (Junction) baseRestriction; + if ( baseRestriction instanceof Junction junction ) { if ( junction.isEmpty() ) { return incomingRestriction; } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteMaterialization.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteMaterialization.java index 056c46722b9c..4ebf5d44a0a7 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteMaterialization.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteMaterialization.java @@ -22,5 +22,5 @@ public enum CteMaterialization { /** * Do not materialize the CTE if possible. */ - NOT_MATERIALIZED; + NOT_MATERIALIZED } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteSearchClauseKind.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteSearchClauseKind.java index 802593f39d20..4f31d12e7209 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteSearchClauseKind.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteSearchClauseKind.java @@ -17,5 +17,5 @@ public enum CteSearchClauseKind { /** * Use breadth first for a recursive CTE. */ - BREADTH_FIRST; + BREADTH_FIRST } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteTable.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteTable.java index 97ac85051c7f..86f488f348ed 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteTable.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/cte/CteTable.java @@ -85,7 +85,7 @@ public static CteTable createEntityTable(String cteName, EntityMappingType entit final EntityIdentifierMapping identifierMapping = entityDescriptor.getIdentifierMapping(); final String idName; if ( identifierMapping instanceof SingleAttributeIdentifierMapping ) { - idName = ( (SingleAttributeIdentifierMapping) identifierMapping ).getAttributeName(); + idName = identifierMapping.getAttributeName(); } else { idName = "id"; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/ExtractUnit.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/ExtractUnit.java index b1c20a71cb90..9ac00d9f31d6 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/ExtractUnit.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/ExtractUnit.java @@ -19,8 +19,8 @@ * @author Gavin King */ public class ExtractUnit implements Expression, SqlAstNode { - private TemporalUnit unit; - private BasicValuedMapping type; + private final TemporalUnit unit; + private final BasicValuedMapping type; public ExtractUnit(TemporalUnit unit, BasicValuedMapping type) { this.unit = unit; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/TrimSpecification.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/TrimSpecification.java index fe10e6af1267..3603d6c96df3 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/TrimSpecification.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/expression/TrimSpecification.java @@ -15,7 +15,7 @@ * @author Gavin King */ public class TrimSpecification implements SqlExpressible, SqlAstNode { - private TrimSpec trimSpec; + private final TrimSpec trimSpec; public TrimSpecification(TrimSpec trimSpec) { this.trimSpec = trimSpec; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/LazyTableGroup.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/LazyTableGroup.java index 3a7c8193f642..7cd830d0cba7 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/LazyTableGroup.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/LazyTableGroup.java @@ -270,7 +270,7 @@ public TableReference getTableReference( return getTableGroup().getTableReference( navigablePath, modelPart, tableExpression, resolve ); } - public static interface ParentTableGroupUseChecker { + public interface ParentTableGroupUseChecker { boolean canUseParentTableGroup(TableGroupProducer producer, NavigablePath navigablePath, ValuedModelPart valuedModelPart); } } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/StandardJdbcMutationExecutor.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/StandardJdbcMutationExecutor.java index 4ecf3a210740..1157f5dc4847 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/StandardJdbcMutationExecutor.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/StandardJdbcMutationExecutor.java @@ -103,8 +103,7 @@ public int execute( e, "JDBC exception executing SQL [" + finalSql + "]" ); - if ( exception instanceof ConstraintViolationException && jdbcMutation instanceof JdbcOperationQueryInsert ) { - final ConstraintViolationException constraintViolationException = (ConstraintViolationException) exception; + if ( exception instanceof ConstraintViolationException constraintViolationException && jdbcMutation instanceof JdbcOperationQueryInsert ) { if ( constraintViolationException.getKind() == ConstraintViolationException.ConstraintKind.UNIQUE ) { final JdbcOperationQueryInsert jdbcInsert = (JdbcOperationQueryInsert) jdbcMutation; final String uniqueConstraintNameThatMayFail = jdbcInsert.getUniqueConstraintNameThatMayFail(); diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcLockStrategy.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcLockStrategy.java index 3f866d89df36..c6b61407e2d7 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcLockStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcLockStrategy.java @@ -22,5 +22,5 @@ public enum JdbcLockStrategy { /** * Do not apply locks. */ - NONE; + NONE } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcOperationQuerySelect.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcOperationQuerySelect.java index 1e49a41b0b10..087ec25db0de 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcOperationQuerySelect.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcOperationQuerySelect.java @@ -13,6 +13,7 @@ import org.hibernate.query.spi.QueryOptions; import org.hibernate.sql.ast.tree.expression.JdbcParameter; import org.hibernate.sql.results.jdbc.spi.JdbcValuesMappingProducer; +import org.hibernate.type.descriptor.java.JavaType; /** * Executable JDBC command @@ -126,27 +127,22 @@ else if ( jdbcParameterBindings.getBinding( parameter ) == null ) { // We handle limit and offset parameters below if ( parameter != offsetParameter && parameter != limitParameter ) { final JdbcParameterBinding binding = jdbcParameterBindings.getBinding( parameter ); - if ( binding == null || !appliedBinding.getBindType() - .getJavaTypeDescriptor() - .areEqual( binding.getBindValue(), appliedBinding.getBindValue() ) ) { + // TODO: appliedBinding can be null here, resulting in NPE + if ( binding == null || !areEqualBindings( appliedBinding, binding ) ) { return false; } } } } final Limit limit = queryOptions.getLimit(); - if ( offsetParameter == null && limitParameter == null ) { - if ( limit != null && !limit.isEmpty() ) { - return false; - } - } - if ( !isCompatible( offsetParameter, limit == null ? null : limit.getFirstRow(), 0 ) ) { - return false; - } - if ( !isCompatible( limitParameter, limit == null ? null : limit.getMaxRows(), Integer.MAX_VALUE ) ) { - return false; - } - return true; + return ( offsetParameter != null || limitParameter != null || limit == null || limit.isEmpty() ) + && isCompatible( offsetParameter, limit == null ? null : limit.getFirstRow(), 0 ) + && isCompatible( limitParameter, limit == null ? null : limit.getMaxRows(), Integer.MAX_VALUE ); + } + + private static boolean areEqualBindings(JdbcParameterBinding appliedBinding, JdbcParameterBinding binding) { + final JavaType javaTypeDescriptor = appliedBinding.getBindType().getJavaTypeDescriptor(); + return javaTypeDescriptor.areEqual( binding.getBindValue(), appliedBinding.getBindValue() ); } private boolean isCompatible(JdbcParameter parameter, Integer requestedValue, int defaultValue) { @@ -164,13 +160,7 @@ private boolean isCompatible(JdbcParameter parameter, Integer requestedValue, in return requestedValue != null; } else { - final int value; - if ( requestedValue == null ) { - value = defaultValue; - } - else { - value = requestedValue; - } + final int value = requestedValue == null ? defaultValue : requestedValue; return value == (int) jdbcParameterBinding.getBindValue(); } } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcParametersList.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcParametersList.java index 35adfcb56d98..6df49c0892c1 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcParametersList.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcParametersList.java @@ -16,17 +16,17 @@ */ public interface JdbcParametersList { - static final JdbcParametersList EMPTY = new JdbcParametersListMulti( new JdbcParameter[]{} ); + JdbcParametersList EMPTY = new JdbcParametersListMulti( new JdbcParameter[]{} ); - public JdbcParameter get(int selectionIndex); + JdbcParameter get(int selectionIndex); - public int size(); + int size(); - public static Builder newBuilder() { + static Builder newBuilder() { return newBuilder( 2 ); } - public static JdbcParametersList fromList(final List originalList) { + static JdbcParametersList fromList(final List originalList) { final Builder builder = newBuilder( originalList.size() ); for ( JdbcParameter element : originalList ) { builder.add( element ); @@ -34,19 +34,19 @@ public static JdbcParametersList fromList(final List originalList return builder.build(); } - public static JdbcParametersList empty() { + static JdbcParametersList empty() { return EMPTY; } - public static JdbcParametersList singleton(final JdbcParameter p) { + static JdbcParametersList singleton(final JdbcParameter p) { return new JdbcParametersListSingleton( p ); } - public static Builder newBuilder(final int i) { + static Builder newBuilder(final int i) { return new Builder( i ); } - public static class Builder { + class Builder { private JdbcParameter[] array; private int index = 0; @@ -82,7 +82,7 @@ else if ( index == array.length ) { } } - public final class JdbcParametersListMulti implements JdbcParametersList { + final class JdbcParametersListMulti implements JdbcParametersList { private final JdbcParameter[] array; @@ -99,7 +99,7 @@ public int size() { } } - public final class JdbcParametersListSingleton implements JdbcParametersList { + final class JdbcParametersListSingleton implements JdbcParametersList { private final JdbcParameter singleElement; diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultCreationState.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultCreationState.java index 84819e9d010f..eb4bc0892f3c 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultCreationState.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultCreationState.java @@ -92,7 +92,7 @@ default Fetch visitIdentifierFetch(EntityResultGraphNode fetchParent) { final EntityIdentifierMapping identifierMapping = fetchParent.getReferencedMappingContainer() .getIdentifierMapping(); return fetchParent.generateFetchableFetch( - (Fetchable) identifierMapping, + identifierMapping, new EntityIdentifierNavigablePath( fetchParent.getNavigablePath(), attributeName( identifierMapping ) ), FetchTiming.IMMEDIATE, true, diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/Initializer.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/Initializer.java index fcb5205348eb..fb774b61adc7 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/Initializer.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/Initializer.java @@ -281,6 +281,6 @@ enum State { MISSING, KEY_RESOLVED, RESOLVED, - INITIALIZED; + INITIALIZED } } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/EmbeddableForeignKeyResultImpl.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/EmbeddableForeignKeyResultImpl.java index 7a0b91171a54..42a5a81fc63e 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/EmbeddableForeignKeyResultImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/EmbeddableForeignKeyResultImpl.java @@ -83,9 +83,8 @@ public Fetch generateFetchableFetch( String resultVariable, DomainResultCreationState creationState) { final boolean shouldSelect; - if ( fetchable instanceof ToOneAttributeMapping ) { + if ( fetchable instanceof ToOneAttributeMapping toOne ) { // We need to make sure to-ones are always delayed to avoid cycles while resolving entity keys - final ToOneAttributeMapping toOne = (ToOneAttributeMapping) fetchable; shouldSelect = selected && !creationState.isAssociationKeyVisited( toOne.getForeignKeyDescriptor().getAssociationKey() ) && !ForeignKeyDescriptor.PART_NAME.equals( getNavigablePath().getLocalName() ) diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/NonAggregatedIdentifierMappingInitializer.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/NonAggregatedIdentifierMappingInitializer.java index c3bb8e4965fe..2aef9bf9b39c 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/NonAggregatedIdentifierMappingInitializer.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/NonAggregatedIdentifierMappingInitializer.java @@ -387,9 +387,8 @@ private void extractRowState(NonAggregatedIdentifierMappingInitializerData data) if ( hasIdClass ) { final AttributeMapping virtualIdAttribute = virtualIdEmbeddable.getAttributeMapping( i ); final AttributeMapping mappedIdAttribute = representationEmbeddable.getAttributeMapping( i ); - if ( virtualIdAttribute instanceof ToOneAttributeMapping - && !( mappedIdAttribute instanceof ToOneAttributeMapping ) ) { - final ToOneAttributeMapping toOneAttributeMapping = (ToOneAttributeMapping) virtualIdAttribute; + if ( virtualIdAttribute instanceof ToOneAttributeMapping toOneAttributeMapping + && !( mappedIdAttribute instanceof ToOneAttributeMapping ) ) { final ForeignKeyDescriptor fkDescriptor = toOneAttributeMapping.getForeignKeyDescriptor(); final Object associationKey = fkDescriptor.getAssociationKeyFromSide( data.virtualIdState[i], diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityDelayedFetchInitializer.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityDelayedFetchInitializer.java index e7a622de836b..748da1898c46 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityDelayedFetchInitializer.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityDelayedFetchInitializer.java @@ -262,11 +262,8 @@ private boolean isLazyByGraph(RowProcessingState rowProcessingState) { if ( appliedGraph != null && appliedGraph.getSemantic() == GraphSemantic.FETCH ) { final AttributeNodeImplementor attributeNode = appliedGraph.getGraph().findAttributeNode( navigablePath.getLocalName() ); - if ( attributeNode != null - && attributeNode.getAttributeDescriptor() == getInitializedPart().asAttributeMapping() ) { - return false; - } - return true; + return attributeNode == null + || attributeNode.getAttributeDescriptor() != getInitializedPart().asAttributeMapping(); } return false; } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/tuple/TupleResult.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/tuple/TupleResult.java index a03e142ba8da..3ddfe7dea6a5 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/tuple/TupleResult.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/tuple/TupleResult.java @@ -30,7 +30,7 @@ public TupleResult( int[] jdbcValuesArrayPositions, String resultVariable, JavaType javaType) { - this( jdbcValuesArrayPositions, resultVariable, javaType, (NavigablePath) null ); + this( jdbcValuesArrayPositions, resultVariable, javaType, null ); } public TupleResult( diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/SequenceInformationExtractorTiDBDatabaseImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/SequenceInformationExtractorTiDBDatabaseImpl.java index e2618f3612fc..4b1e8232e442 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/SequenceInformationExtractorTiDBDatabaseImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/SequenceInformationExtractorTiDBDatabaseImpl.java @@ -49,7 +49,7 @@ public Iterable extractMetadata(ExtractionContext extractio try ( final Statement statement = extractionContext.getJdbcConnection().createStatement(); - final ResultSet resultSet = statement.executeQuery( lookupSql ); + final ResultSet resultSet = statement.executeQuery( lookupSql ) ) { while ( resultSet.next() ) { sequenceNames.add( resultSetSequenceName( resultSet ) ); @@ -68,7 +68,7 @@ public Iterable extractMetadata(ExtractionContext extractio try ( final Statement statement = extractionContext.getJdbcConnection().createStatement(); - final ResultSet resultSet = statement.executeQuery( sequenceInfoQueryBuilder.toString() ); + final ResultSet resultSet = statement.executeQuery( sequenceInfoQueryBuilder.toString() ) ) { while ( resultSet.next() ) { diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/spi/NameSpaceTablesInformation.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/spi/NameSpaceTablesInformation.java index e5809c207e78..3e4f0aaf3606 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/spi/NameSpaceTablesInformation.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/spi/NameSpaceTablesInformation.java @@ -15,7 +15,7 @@ */ public class NameSpaceTablesInformation { private final IdentifierHelper identifierHelper; - private Map tables = new HashMap<>(); + private final Map tables = new HashMap<>(); public NameSpaceTablesInformation(IdentifierHelper identifierHelper) { this.identifierHelper = identifierHelper; diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToStdout.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToStdout.java index 988099d5c987..c397b9266af8 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToStdout.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/exec/ScriptTargetOutputToStdout.java @@ -44,7 +44,7 @@ public void release() { writer.close(); } catch (IOException e) { - throw new SchemaManagementException( "Unable to close file writer : " + e.toString() ); + throw new SchemaManagementException( "Unable to close file writer : " + e ); } finally { writer = null; 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 7baebace7f7e..0af6cd692951 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 @@ -37,9 +37,8 @@ public List visitScript(SqlScriptParser.ScriptContext ctx) { final StringBuilder commandBuffer = new StringBuilder(); for ( int i = 0; i < children.size(); i++ ) { final ParseTree parseTree = children.get( i ); - if ( parseTree instanceof SqlScriptParser.CommandBlockContext ) { + if ( parseTree instanceof SqlScriptParser.CommandBlockContext blockContext ) { commandBuffer.setLength( 0 ); - final SqlScriptParser.CommandBlockContext blockContext = (SqlScriptParser.CommandBlockContext) parseTree; final List terminalNodes = blockContext.command().children; for ( int j = 0; j < terminalNodes.size(); j++ ) { final TerminalNode terminalNode = (TerminalNode) terminalNodes.get( j ); diff --git a/hibernate-core/src/main/java/org/hibernate/type/AnyType.java b/hibernate-core/src/main/java/org/hibernate/type/AnyType.java index 7a4393ab66b5..76779d476c7b 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/AnyType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/AnyType.java @@ -494,8 +494,7 @@ public int hashCode() { } public boolean equals(Object object) { - if ( object instanceof ObjectTypeCacheEntry ) { - final ObjectTypeCacheEntry objectTypeCacheEntry = (ObjectTypeCacheEntry) object; + if ( object instanceof ObjectTypeCacheEntry objectTypeCacheEntry ) { return Objects.equals( objectTypeCacheEntry.entityName, entityName ) && Objects.equals( objectTypeCacheEntry.id, id ); } diff --git a/hibernate-core/src/main/java/org/hibernate/type/TypeHelper.java b/hibernate-core/src/main/java/org/hibernate/type/TypeHelper.java index 2b48893dcc50..0b9a2a82965f 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/TypeHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/type/TypeHelper.java @@ -195,8 +195,7 @@ public static Object[] replaceAssociations( copied[i] = types[i].replace( currentOriginal, target[i], session, owner, copyCache, foreignKeyDirection ); } else { - if ( type instanceof ComponentType ) { - final ComponentType compositeType = (ComponentType) type; + if ( type instanceof ComponentType compositeType ) { if ( target[i] != null ) { // need to extract the component values and check for subtype replacements... final Object[] objects = replaceCompositeAssociations( diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/CollectionJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/CollectionJavaType.java index da0cdb3c8ca9..a6a0dc9f03b0 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/CollectionJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/CollectionJavaType.java @@ -112,13 +112,11 @@ public boolean areEqual(C one, C another) { return true; } - if ( one instanceof PersistentCollection ) { - final PersistentCollection pc = (PersistentCollection) one; + if ( one instanceof PersistentCollection pc ) { return pc.wasInitialized() && ( pc.isWrapper( another ) || pc.isDirectlyProvidedCollection( another ) ); } - if ( another instanceof PersistentCollection ) { - final PersistentCollection pc = (PersistentCollection) another; + if ( another instanceof PersistentCollection pc ) { return pc.wasInitialized() && ( pc.isWrapper( one ) || pc.isDirectlyProvidedCollection( one ) ); } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/JavaTypeRegistry.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/JavaTypeRegistry.java index fc0a88c139db..c54b21539503 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/JavaTypeRegistry.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/JavaTypeRegistry.java @@ -128,8 +128,7 @@ public JavaType resolveDescriptor( return resolveDescriptor( javaType, () -> { - if ( javaType instanceof ParameterizedType ) { - final ParameterizedType parameterizedType = (ParameterizedType) javaType; + if ( javaType instanceof ParameterizedType parameterizedType ) { final JavaType rawType = findDescriptor( parameterizedType.getRawType() ); if ( rawType != null ) { return rawType.createJavaType( parameterizedType, typeConfiguration ); diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/ArrayJdbcType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/ArrayJdbcType.java index be650dd371d0..3bf37b59fb28 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/ArrayJdbcType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/ArrayJdbcType.java @@ -171,8 +171,7 @@ protected Object[] getArray(BasicBinder binder, ValueBinder elementBin } protected X getArray(BasicExtractor extractor, java.sql.Array array, WrapperOptions options) throws SQLException { - if ( array != null && getElementJdbcType() instanceof AggregateJdbcType ) { - final AggregateJdbcType aggregateJdbcType = (AggregateJdbcType) getElementJdbcType(); + if ( array != null && getElementJdbcType() instanceof AggregateJdbcType aggregateJdbcType ) { final EmbeddableMappingType embeddableMappingType = aggregateJdbcType.getEmbeddableMappingType(); final Object rawArray = array.getArray(); final Object[] domainObjects = new Object[Array.getLength( rawArray )]; diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/spi/JdbcTypeRegistry.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/spi/JdbcTypeRegistry.java index 29a56dedcad9..d5d1f2352bb6 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/spi/JdbcTypeRegistry.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/spi/JdbcTypeRegistry.java @@ -252,8 +252,7 @@ private JdbcType resolveTypeConstructorDescriptor( if ( existingType != null ) { return existingType; } - if ( jdbcType instanceof SqlTypedJdbcType ) { - final SqlTypedJdbcType sqlTypedJdbcType = (SqlTypedJdbcType) jdbcType; + if ( jdbcType instanceof SqlTypedJdbcType sqlTypedJdbcType ) { sqlTypedDescriptorMap.put( sqlTypedJdbcType.getSqlTypeName().toLowerCase( Locale.ROOT ), sqlTypedJdbcType ); } return jdbcType; diff --git a/hibernate-core/src/main/java/org/hibernate/type/format/jaxb/JaxbXmlFormatMapper.java b/hibernate-core/src/main/java/org/hibernate/type/format/jaxb/JaxbXmlFormatMapper.java index bced16e05128..cb567855cdcb 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/format/jaxb/JaxbXmlFormatMapper.java +++ b/hibernate-core/src/main/java/org/hibernate/type/format/jaxb/JaxbXmlFormatMapper.java @@ -566,7 +566,7 @@ private Marshaller createMarshaller(JAXBContext context) throws JAXBException { return marshaller; } - public static interface ManagedMapWrapper { + public interface ManagedMapWrapper { int size(); } @@ -637,7 +637,7 @@ public CollectionWrapper(Collection elements) { } } - private static interface JAXBElementTransformer { + private interface JAXBElementTransformer { JAXBElement toJAXBElement(Object o); Object fromJAXBElement(Object element, Unmarshaller unmarshaller) throws JAXBException; Object fromXmlContent(String content); diff --git a/hibernate-core/src/main/java/org/hibernate/type/internal/ParameterizedTypeImpl.java b/hibernate-core/src/main/java/org/hibernate/type/internal/ParameterizedTypeImpl.java index c53bcc38b09c..05c9e119c204 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/internal/ParameterizedTypeImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/type/internal/ParameterizedTypeImpl.java @@ -61,10 +61,9 @@ public Type getOwnerType() { @Override public boolean equals(Object obj) { - if ( !( obj instanceof ParameterizedType ) ) { + if ( !(obj instanceof ParameterizedType other) ) { return false; } - ParameterizedType other = (ParameterizedType) obj; return Objects.equals( getOwnerType(), other.getOwnerType() ) && Objects.equals( getRawType(), other.getRawType() ) && Arrays.equals( getActualTypeArguments(), other.getActualTypeArguments() ); From fc09ef58d848f0933969f57f32d561dd248501c6 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Fri, 3 Jan 2025 22:53:40 +0100 Subject: [PATCH 3/3] some cleanups around QueryParameterBindings --- .../internal/ProcedureParamBindings.java | 3 +- .../internal/QueryParameterBindingsImpl.java | 2 +- .../spi/AbstractCommonQueryContract.java | 11 +- .../query/spi/QueryParameterBindings.java | 4 +- .../sqm/internal/SqmSelectionQueryImpl.java | 105 +++++++++--------- 5 files changed, 62 insertions(+), 63 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureParamBindings.java b/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureParamBindings.java index 38687d34ad4a..d70ab8c1573b 100644 --- a/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureParamBindings.java +++ b/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureParamBindings.java @@ -13,6 +13,7 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.procedure.spi.ProcedureParameterBindingImplementor; import org.hibernate.procedure.spi.ProcedureParameterImplementor; +import org.hibernate.query.QueryParameter; import org.hibernate.query.procedure.ProcedureParameterBinding; import org.hibernate.query.spi.QueryParameterBinding; import org.hibernate.query.spi.QueryParameterBindings; @@ -124,7 +125,7 @@ public boolean hasAnyMultiValuedBindings() { } @Override - public void visitBindings(BiConsumer, QueryParameterBinding> action) { + public void visitBindings(BiConsumer, ? super QueryParameterBinding> action) { bindingMap.forEach( action ); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java b/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java index c955c10eb8b7..4dfc07d1eb48 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java @@ -198,7 +198,7 @@ public boolean hasAnyMultiValuedBindings() { } @Override - public void visitBindings(@SuppressWarnings("rawtypes") BiConsumer action) { + public void visitBindings(BiConsumer, ? super QueryParameterBinding> action) { parameterBindingMap.forEach( action ); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/spi/AbstractCommonQueryContract.java b/hibernate-core/src/main/java/org/hibernate/query/spi/AbstractCommonQueryContract.java index eadc7c2e38be..f5a57377d274 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/spi/AbstractCommonQueryContract.java +++ b/hibernate-core/src/main/java/org/hibernate/query/spi/AbstractCommonQueryContract.java @@ -14,6 +14,7 @@ import java.util.Set; import org.hibernate.FlushMode; +import org.hibernate.Internal; import org.hibernate.query.QueryFlushMode; import org.hibernate.HibernateException; import org.hibernate.LockMode; @@ -635,7 +636,8 @@ public QueryParameterImplementor getParameter(int position, Class type // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Parameter binding handling - protected abstract QueryParameterBindings getQueryParameterBindings(); + @Internal // Made public to work around this bug: https://bugs.openjdk.org/browse/JDK-8340443 + public abstract QueryParameterBindings getQueryParameterBindings(); protected abstract boolean resolveJdbcParameterTypeIfNecessary(); protected

QueryParameterBinding

locateBinding(Parameter

parameter) { @@ -1345,10 +1347,9 @@ public CommonQueryContract setProperties(Object bean) { final Class clazz = bean.getClass(); for ( String paramName : getParameterMetadata().getNamedParameterNames() ) { try { - final PropertyAccess propertyAccess = BuiltInPropertyAccessStrategies.BASIC.getStrategy().buildPropertyAccess( - clazz, - paramName, - true ); + final PropertyAccess propertyAccess = + BuiltInPropertyAccessStrategies.BASIC.getStrategy() + .buildPropertyAccess( clazz, paramName, true ); final Getter getter = propertyAccess.getGetter(); final Class retType = getter.getReturnTypeClass(); final Object object = getter.get( bean ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/spi/QueryParameterBindings.java b/hibernate-core/src/main/java/org/hibernate/query/spi/QueryParameterBindings.java index 4972aea98bdd..d196e94880bb 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/spi/QueryParameterBindings.java +++ b/hibernate-core/src/main/java/org/hibernate/query/spi/QueryParameterBindings.java @@ -82,15 +82,17 @@ default

QueryParameterBinding

getBinding(QueryParameter

parameter) { */ QueryKey.ParameterBindingsMemento generateQueryKeyMemento(SharedSessionContractImplementor persistenceContext); - void visitBindings(BiConsumer, QueryParameterBinding> action); + void visitBindings(BiConsumer, ? super QueryParameterBinding> action); QueryKey.ParameterBindingsMemento NO_PARAMETER_BINDING_MEMENTO = new QueryKey.ParameterBindingsMemento(){ }; /** * @deprecated Use {@link #empty()} instead. + * Currently unused and can be safely removed. */ @Deprecated(forRemoval = true, since = "6.6") + @SuppressWarnings({"rawtypes", "unchecked"}) QueryParameterBindings NO_PARAM_BINDINGS = new QueryParameterBindings() { @Override public boolean isBound(QueryParameterImplementor parameter) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmSelectionQueryImpl.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmSelectionQueryImpl.java index bd99a8c89e1b..deac40f15ea3 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmSelectionQueryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmSelectionQueryImpl.java @@ -29,7 +29,6 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.graph.spi.AppliedGraph; import org.hibernate.internal.util.collections.IdentitySet; -import org.hibernate.metamodel.mapping.MappingModelExpressible; import org.hibernate.query.BindableType; import org.hibernate.query.KeyedPage; import org.hibernate.query.Order; @@ -150,22 +149,23 @@ public SqmSelectionQueryImpl( Class expectedResultType, SharedSessionContractImplementor session) { super( session ); - this.hql = CRITERIA_HQL_STRING; + this.expectedResultType = expectedResultType; + hql = CRITERIA_HQL_STRING; if ( session.isCriteriaCopyTreeEnabled() ) { - this.sqm = criteria.copy( SqmCopyContext.simpleContext() ); + sqm = criteria.copy( SqmCopyContext.simpleContext() ); } else { - this.sqm = criteria; + sqm = criteria; // Cache immutable query plans by default setQueryPlanCacheable( true ); } - this.domainParameterXref = DomainParameterXref.from( sqm ); - this.parameterMetadata = domainParameterXref.hasParameters() + domainParameterXref = DomainParameterXref.from( sqm ); + parameterMetadata = domainParameterXref.hasParameters() ? new ParameterMetadataImpl( domainParameterXref.getQueryParameters() ) : ParameterMetadataImpl.EMPTY; - this.parameterBindings = parameterMetadata.createBindings( session.getFactory() ); + parameterBindings = parameterMetadata.createBindings( session.getFactory() ); // Parameters might be created through HibernateCriteriaBuilder.value which we need to bind here for ( SqmParameter sqmParameter : domainParameterXref.getParameterResolutions().getSqmParameters() ) { @@ -174,8 +174,7 @@ public SqmSelectionQueryImpl( } } - this.expectedResultType = expectedResultType; - this.resultType = determineResultType( sqm, expectedResultType ); + resultType = determineResultType( sqm, expectedResultType ); final SqmQueryPart queryPart = sqm.getQueryPart(); // For criteria queries, we have to validate the fetch structure here @@ -185,7 +184,7 @@ public SqmSelectionQueryImpl( setComment( hql ); - this.tupleMetadata = buildTupleMetadata( sqm, expectedResultType ); + tupleMetadata = buildTupleMetadata( sqm, expectedResultType ); } SqmSelectionQueryImpl(AbstractSqmSelectionQuery original, KeyedPage keyedPage) { @@ -199,7 +198,7 @@ SqmSelectionQueryImpl(AbstractSqmSelectionQuery original, KeyedPage ke ? Order.reverse( keyDefinition ) : keyDefinition; //noinspection unchecked - this.sqm = (SqmSelectStatement) paginate( + sqm = (SqmSelectStatement) paginate( appliedKeyDefinition, key, // Change the query source to CRITERIA, because we will change the query and introduce parameters @@ -207,62 +206,28 @@ SqmSelectionQueryImpl(AbstractSqmSelectionQuery original, KeyedPage ke .copy( noParamCopyContext( SqmQuerySource.CRITERIA ) ), original.getSqmStatement().nodeBuilder() ); - this.hql = CRITERIA_HQL_STRING; + hql = CRITERIA_HQL_STRING; - this.domainParameterXref = DomainParameterXref.from( sqm ); - this.parameterMetadata = domainParameterXref.hasParameters() + domainParameterXref = DomainParameterXref.from( sqm ); + parameterMetadata = domainParameterXref.hasParameters() ? new ParameterMetadataImpl( domainParameterXref.getQueryParameters() ) : ParameterMetadataImpl.EMPTY; // Just use the original parameter bindings since this object is never going to be mutated - this.parameterBindings = parameterMetadata.createBindings( original.getSession().getSessionFactory() ); - // Don't remove this cast. This is here to work around this bug: https://bugs.openjdk.org/browse/JDK-8340443 - //noinspection RedundantCast - final QueryParameterBindings bindings = ((DomainQueryExecutionContext) original).getQueryParameterBindings(); - bindings.visitBindings( - (parameter, binding) -> { - //noinspection unchecked - final QueryParameterBinding parameterBinding = - (QueryParameterBinding) this.parameterBindings.getBinding( parameter ); - final TemporalType explicitTemporalPrecision = binding.getExplicitTemporalPrecision(); - if ( explicitTemporalPrecision != null ) { - if ( binding.isMultiValued() ) { - parameterBinding.setBindValues( - binding.getBindValues(), - explicitTemporalPrecision, - getSessionFactory().getTypeConfiguration() - ); - } - else { - parameterBinding.setBindValue( binding.getBindValue(), explicitTemporalPrecision ); - } - } - else { - //noinspection unchecked - final BindableType bindType = (BindableType) binding.getBindType(); - if ( binding.isMultiValued() ) { - parameterBinding.setBindValues( binding.getBindValues(), bindType ); - } - else { - parameterBinding.setBindValue( binding.getBindValue(), bindType ); - } - } - //noinspection unchecked - parameterBinding.setType( (MappingModelExpressible) binding.getType() ); - } - ); + parameterBindings = parameterMetadata.createBindings( original.getSession().getSessionFactory() ); + original.getQueryParameterBindings().visitBindings( this::setBindValues ); // Parameters might be created through HibernateCriteriaBuilder.value which we need to bind here for ( SqmParameter sqmParameter : domainParameterXref.getParameterResolutions().getSqmParameters() ) { - if ( sqmParameter instanceof SqmJpaCriteriaParameterWrapper ) { - bindCriteriaParameter( (SqmJpaCriteriaParameterWrapper) sqmParameter ); + if ( sqmParameter instanceof SqmJpaCriteriaParameterWrapper parameterWrapper ) { + bindCriteriaParameter( parameterWrapper ); } } //noinspection unchecked - this.expectedResultType = (Class) KeyedResult.class; - this.resultType = determineResultType( sqm, expectedResultType ); - this.tupleMetadata = null; + expectedResultType = (Class) KeyedResult.class; + resultType = determineResultType( sqm, expectedResultType ); + tupleMetadata = null; setMaxResults( page.getMaxResults() + 1 ); if ( key == null ) { @@ -270,6 +235,36 @@ SqmSelectionQueryImpl(AbstractSqmSelectionQuery original, KeyedPage ke } } + private void setBindValues(QueryParameter parameter, QueryParameterBinding binding) { + final QueryParameterBinding paramBinding = parameterBindings.getBinding( parameter ); + //noinspection unchecked + final QueryParameterBinding parameterBinding = (QueryParameterBinding) paramBinding; + final TemporalType explicitTemporalPrecision = binding.getExplicitTemporalPrecision(); + if ( explicitTemporalPrecision != null ) { + if ( binding.isMultiValued() ) { + parameterBinding.setBindValues( + binding.getBindValues(), + explicitTemporalPrecision, + getSessionFactory().getTypeConfiguration() + ); + } + else { + parameterBinding.setBindValue( binding.getBindValue(), explicitTemporalPrecision ); + } + } + else { + //noinspection unchecked + final BindableType bindType = (BindableType) binding.getBindType(); + if ( binding.isMultiValued() ) { + parameterBinding.setBindValues( binding.getBindValues(), bindType ); + } + else { + parameterBinding.setBindValue( binding.getBindValue(), bindType ); + } + } + parameterBinding.setType( binding.getType() ); + } + private static Class determineResultType(SqmSelectStatement sqm, Class expectedResultType) { final List> selections = sqm.getQuerySpec().getSelectClause().getSelections();