diff --git a/hibernate-core/src/main/java/org/hibernate/cache/internal/DefaultCacheKeysFactory.java b/hibernate-core/src/main/java/org/hibernate/cache/internal/DefaultCacheKeysFactory.java index e9710a217c42..6348e4737e5d 100644 --- a/hibernate-core/src/main/java/org/hibernate/cache/internal/DefaultCacheKeysFactory.java +++ b/hibernate-core/src/main/java/org/hibernate/cache/internal/DefaultCacheKeysFactory.java @@ -45,7 +45,7 @@ public class DefaultCacheKeysFactory implements CacheKeysFactory { public static Object staticCreateCollectionKey(Object id, CollectionPersister persister, SessionFactoryImplementor factory, String tenantIdentifier) { final Type keyType = persister.getKeyType(); - final var coercedId = getCoercedId( id, factory, keyType ); + final var coercedId = getCoercedId( id, keyType ); final var disassembledKey = keyType.disassemble( coercedId, factory ); final boolean idIsArray = disassembledKey.getClass().isArray(); final String role = persister.getRole(); @@ -56,7 +56,7 @@ public static Object staticCreateCollectionKey(Object id, CollectionPersister pe public static Object staticCreateEntityKey(Object id, EntityPersister persister, SessionFactoryImplementor factory, String tenantIdentifier) { final Type keyType = persister.getIdentifierType(); - final var coercedId = getCoercedId( id, factory, keyType ); + final var coercedId = getCoercedId( id, keyType ); final var disassembledKey = keyType.disassemble( coercedId, factory ); final boolean idIsArray = disassembledKey.getClass().isArray(); final String rootEntityName = persister.getRootEntityName(); @@ -65,9 +65,9 @@ public static Object staticCreateEntityKey(Object id, EntityPersister persister, : new CacheKeyImplementation( coercedId, disassembledKey, keyType, rootEntityName, tenantIdentifier ); } - private static Object getCoercedId(Object id, SessionFactoryImplementor factory, Type keyType) { + private static Object getCoercedId(Object id, Type keyType) { return keyType instanceof BasicType basicType - ? basicType.getJavaTypeDescriptor().coerce( id, factory::getTypeConfiguration ) + ? basicType.getJavaTypeDescriptor().coerce( id ) : id; } diff --git a/hibernate-core/src/main/java/org/hibernate/cache/internal/EnabledCaching.java b/hibernate-core/src/main/java/org/hibernate/cache/internal/EnabledCaching.java index 76c233fc60cb..06dc1ebf52bc 100644 --- a/hibernate-core/src/main/java/org/hibernate/cache/internal/EnabledCaching.java +++ b/hibernate-core/src/main/java/org/hibernate/cache/internal/EnabledCaching.java @@ -227,11 +227,9 @@ public boolean containsEntity(String entityName, Object identifier) { final var persister = getEntityDescriptor( entityName ); final var cacheAccess = persister.getCacheAccessStrategy(); if ( cacheAccess != null ) { - final Object idValue = - persister.getIdentifierMapping().getJavaType() - .coerce( identifier, sessionFactory::getTypeConfiguration ); final Object key = cacheAccess.generateCacheKey( - idValue, + persister.getIdentifierMapping().getJavaType() + .coerce( identifier ), persister.getRootEntityDescriptor().getEntityPersister(), sessionFactory, null diff --git a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/AbstractMultiIdEntityLoader.java b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/AbstractMultiIdEntityLoader.java index a792b296e9cb..1279324f9be7 100644 --- a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/AbstractMultiIdEntityLoader.java +++ b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/AbstractMultiIdEntityLoader.java @@ -130,7 +130,7 @@ private List orderedMultiLoad( final var lockOptions = lockOptions( loadOptions ); for ( int i = 0; i < ids.length; i++ ) { - final Object id = coerce( session, idType, ids[i] ); + final Object id = coerce( idType, ids[i] ); final var entityKey = new EntityKey( id, getLoadable().getEntityPersister() ); if ( !loadFromEnabledCaches( loadOptions, session, id, lockOptions, entityKey, results, i ) ) { // if we did not hit any of the continues above, @@ -160,8 +160,8 @@ private List orderedMultiLoad( return (List) results; } - private Object coerce(SharedSessionContractImplementor session, JavaType idType, Object id) { - return idCoercionEnabled ? idType.coerce( id, session ) : id; + private Object coerce(JavaType idType, Object id) { + return idCoercionEnabled ? idType.coerce( id ) : id; } private static LockOptions lockOptions(MultiIdLoadOptions loadOptions) { @@ -342,7 +342,7 @@ private List unresolvedIds( final var idType = getLoadable().getIdentifierMapping().getJavaType(); List unresolvedIds = null; for ( int i = 0; i < ids.length; i++ ) { - final Object id = coerce( session, idType, ids[i] ); + final Object id = coerce( idType, ids[i] ); unresolvedIds = loadFromCaches( loadOptions, diff --git a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java index 77fc6ac9a14a..b79661bbf050 100644 --- a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java @@ -188,7 +188,7 @@ public static K[] normalizeKeys( } else { for ( int i = 0; i < keys.length; i++ ) { - typedArray[i] = keyJavaType.coerce( keys[i], session ); + typedArray[i] = keyJavaType.cast( keyJavaType.coerce( keys[i] ) ); } } return typedArray; diff --git a/hibernate-core/src/main/java/org/hibernate/loader/internal/IdentifierLoadAccessImpl.java b/hibernate-core/src/main/java/org/hibernate/loader/internal/IdentifierLoadAccessImpl.java index d947ad688912..6bb5a3423a2a 100644 --- a/hibernate-core/src/main/java/org/hibernate/loader/internal/IdentifierLoadAccessImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/loader/internal/IdentifierLoadAccessImpl.java @@ -26,8 +26,6 @@ import org.hibernate.graph.GraphSemantic; import org.hibernate.graph.spi.RootGraphImplementor; import org.hibernate.persister.entity.EntityPersister; -import org.hibernate.type.descriptor.java.JavaType; -import org.hibernate.type.spi.TypeConfiguration; import static org.hibernate.proxy.HibernateProxy.extractLazyInitializer; @@ -37,7 +35,7 @@ * @author Steve Ebersole */ // Hibernate Reactive extends this class: see ReactiveIdentifierLoadAccessImpl -public class IdentifierLoadAccessImpl implements IdentifierLoadAccess, JavaType.CoercionContext { +public class IdentifierLoadAccessImpl implements IdentifierLoadAccess { private final LoadAccessContext context; private final EntityPersister entityPersister; @@ -199,7 +197,7 @@ protected Object coerceId(Object id, SessionFactoryImplementor factory) { final var identifierMapping = entityPersister.getIdentifierMapping(); return identifierMapping.isVirtual() ? id // special case for a class with an @IdClass - : identifierMapping.getJavaType().coerce( id, this ); + : identifierMapping.getJavaType().coerce( id ); } catch ( Exception e ) { throw new IllegalArgumentException( "Argument '" + id @@ -233,11 +231,6 @@ private static boolean isLoadByIdComplianceEnabled(SessionFactoryImplementor fac return factory.getSessionFactoryOptions().getJpaCompliance().isLoadByIdComplianceEnabled(); } - @Override - public TypeConfiguration getTypeConfiguration() { - return context.getSession().getSessionFactory().getTypeConfiguration(); - } - @Override public IdentifierLoadAccess enableFetchProfile(String profileName) { if ( !context.getSession().getFactory().containsFetchProfileDefinition( profileName ) ) { diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleNaturalIdMapping.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleNaturalIdMapping.java index 555117bf9d97..f8910b60e35d 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleNaturalIdMapping.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleNaturalIdMapping.java @@ -34,7 +34,6 @@ import org.hibernate.sql.results.graph.DomainResult; import org.hibernate.sql.results.graph.DomainResultCreationState; import org.hibernate.type.descriptor.java.JavaType; -import org.hibernate.type.spi.TypeConfiguration; import static org.hibernate.loader.ast.internal.MultiKeyLoadHelper.supportsSqlArrayType; @@ -42,10 +41,9 @@ * Single-attribute NaturalIdMapping implementation */ public class SimpleNaturalIdMapping extends AbstractNaturalIdMapping - implements JavaType.CoercionContext, BasicValuedMapping { + implements BasicValuedMapping { private final SingularAttributeMapping attribute; private final SessionFactoryImplementor sessionFactory; - private final TypeConfiguration typeConfiguration; public SimpleNaturalIdMapping( SingularAttributeMapping attribute, @@ -54,7 +52,6 @@ public SimpleNaturalIdMapping( super( declaringType, attribute.getAttributeMetadata().isUpdatable() ); this.attribute = attribute; this.sessionFactory = creationProcess.getCreationContext().getSessionFactory(); - this.typeConfiguration = creationProcess.getCreationContext().getTypeConfiguration(); } public SingularAttributeMapping getAttribute() { @@ -143,7 +140,7 @@ public Object normalizeInput(Object incoming) { final Object normalizedValue = normalizedValue( incoming ); return isLoadByIdComplianceEnabled() ? normalizedValue - : getJavaType().coerce( normalizedValue, this ); + : getJavaType().coerce( normalizedValue ); } private Object normalizedValue(Object incoming) { @@ -295,11 +292,6 @@ private Dialect getDialect() { return sessionFactory.getJdbcServices().getDialect(); } - @Override - public TypeConfiguration getTypeConfiguration() { - return typeConfiguration; - } - @Override public AttributeMapping asAttributeMapping() { return getAttribute(); diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AnyDiscriminatorSqmPath.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AnyDiscriminatorSqmPath.java index 3fbe0ec4040e..03b74253ba57 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AnyDiscriminatorSqmPath.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AnyDiscriminatorSqmPath.java @@ -29,7 +29,7 @@ protected AnyDiscriminatorSqmPath( @Override public AnyDiscriminatorSqmPath copy(SqmCopyContext context) { - final AnyDiscriminatorSqmPath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EmbeddedDiscriminatorSqmPath.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EmbeddedDiscriminatorSqmPath.java index 65a3b05667d5..650f0c406415 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EmbeddedDiscriminatorSqmPath.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EmbeddedDiscriminatorSqmPath.java @@ -52,7 +52,7 @@ public EmbeddableDomainType getEmbeddableDomainType() { @Override public EmbeddedDiscriminatorSqmPath copy(SqmCopyContext context) { - final EmbeddedDiscriminatorSqmPath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EntityDiscriminatorSqmPath.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EntityDiscriminatorSqmPath.java index 10fe6fa1b404..4abc6181c474 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EntityDiscriminatorSqmPath.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/EntityDiscriminatorSqmPath.java @@ -64,7 +64,7 @@ public EntityMappingType getEntityDescriptor() { @Override public EntityDiscriminatorSqmPath copy(SqmCopyContext context) { - final EntityDiscriminatorSqmPath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/BasicDotIdentifierConsumer.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/BasicDotIdentifierConsumer.java index 265c9ea46e8e..e120e438de3a 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/BasicDotIdentifierConsumer.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/BasicDotIdentifierConsumer.java @@ -198,8 +198,7 @@ private SemanticPathPart resolvePath(String identifier, boolean isTerminal, SqmC if ( pathRootByExposedNavigable != null ) { // identifier is an "unqualified attribute reference" validateAsRoot( pathRootByExposedNavigable ); - final SqmPath sqmPath = - pathRootByExposedNavigable.get( identifier, true ); + final var sqmPath = pathRootByExposedNavigable.get( identifier, true ); return isTerminal ? sqmPath : new DomainPathPart( sqmPath ); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPathConsumer.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPathConsumer.java index 280f48f4445a..39aeed17f989 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPathConsumer.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QualifiedJoinPathConsumer.java @@ -10,7 +10,6 @@ import org.hibernate.query.hql.spi.SemanticPathPart; import org.hibernate.query.hql.spi.SqmCreationProcessingState; import org.hibernate.query.hql.spi.SqmCreationState; -import org.hibernate.query.hql.spi.SqmPathRegistry; import org.hibernate.query.sqm.SqmJoinable; import org.hibernate.query.sqm.SqmPathSource; import org.hibernate.query.sqm.spi.SqmCreationHelper; @@ -124,7 +123,7 @@ public void consumeTreat(String entityName, boolean isTerminal) { private ConsumerDelegate resolveBase(String identifier, boolean isTerminal) { final SqmCreationProcessingState processingState = creationState.getCurrentProcessingState(); - final SqmPathRegistry pathRegistry = processingState.getPathRegistry(); + final var pathRegistry = processingState.getPathRegistry(); final SqmFrom pathRootByAlias = pathRegistry.findFromByAlias( identifier, true ); if ( pathRootByAlias != null ) { return resolveAlias( identifier, isTerminal, pathRootByAlias ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QuerySplitter.java b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QuerySplitter.java index b7c294e5577d..cca925e7b74f 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QuerySplitter.java +++ b/hibernate-core/src/main/java/org/hibernate/query/hql/internal/QuerySplitter.java @@ -78,7 +78,7 @@ private static > S copyStatement( final SqmCopyContext context = SqmCopyContext.noParamCopyContext(); // Copy the statement replacing the root's unmapped polymorphic reference with // the concrete mapped descriptor entity domain type. - final SqmRoot path = context.registerCopy( + final var path = context.registerCopy( unmappedPolymorphicReference, new SqmRoot<>( mappedDescriptor, diff --git a/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingImpl.java b/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingImpl.java index 1341b1fdd2ff..4c9bdd7d91b5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingImpl.java @@ -31,7 +31,7 @@ * * @author Steve Ebersole */ -public class QueryParameterBindingImpl implements QueryParameterBinding, JavaType.CoercionContext { +public class QueryParameterBindingImpl implements QueryParameterBinding { private final QueryParameter queryParameter; private final SessionFactoryImplementor sessionFactory; @@ -296,7 +296,6 @@ private void validate(Object value, TemporalType clarifiedTemporalType) { QueryParameterBindingValidator.INSTANCE.validate( getBindType(), value, clarifiedTemporalType, getCriteriaBuilder() ); } - @Override public TypeConfiguration getTypeConfiguration() { return sessionFactory.getTypeConfiguration(); } @@ -337,7 +336,7 @@ private Object coerce(T value, BindableType parameterType) { } else { return getCriteriaBuilder().resolveExpressible( parameterType ) - .getExpressibleJavaType().coerce( value, this ); + .getExpressibleJavaType().coerce( value ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmAggregateFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmAggregateFunction.java index 0465d242a535..87426e00faa3 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmAggregateFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmAggregateFunction.java @@ -47,7 +47,7 @@ public SelfRenderingSqmAggregateFunction( @Override public SelfRenderingSqmAggregateFunction copy(SqmCopyContext context) { - final SelfRenderingSqmAggregateFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmFunction.java index ea201483a9c3..16a0720ded37 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmFunction.java @@ -59,7 +59,7 @@ public SelfRenderingSqmFunction( @Override public SelfRenderingSqmFunction copy(SqmCopyContext context) { - final SelfRenderingSqmFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmOrderedSetAggregateFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmOrderedSetAggregateFunction.java index 0853d952cc82..f566f16cbd9d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmOrderedSetAggregateFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmOrderedSetAggregateFunction.java @@ -63,7 +63,7 @@ public SelfRenderingSqmOrderedSetAggregateFunction( @Override public SelfRenderingSqmOrderedSetAggregateFunction copy(SqmCopyContext context) { - final SelfRenderingSqmOrderedSetAggregateFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmSetReturningFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmSetReturningFunction.java index 07050852dc99..c1fcae0e7fe3 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmSetReturningFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmSetReturningFunction.java @@ -63,7 +63,7 @@ public SelfRenderingSqmSetReturningFunction( @Override public SelfRenderingSqmSetReturningFunction copy(SqmCopyContext context) { - final SelfRenderingSqmSetReturningFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmWindowFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmWindowFunction.java index 242fa87c2e7d..3bddb3a703ef 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmWindowFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/function/SelfRenderingSqmWindowFunction.java @@ -53,7 +53,7 @@ public SelfRenderingSqmWindowFunction( @Override public SelfRenderingSqmWindowFunction copy(SqmCopyContext context) { - final SelfRenderingSqmWindowFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } 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 f96a66ad04ae..c522f55221dd 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 @@ -79,7 +79,6 @@ import org.hibernate.query.sqm.SetOperator; import org.hibernate.query.sqm.SqmBindableType; import org.hibernate.query.sqm.SqmExpressible; -import org.hibernate.query.sqm.SqmPathSource; import org.hibernate.query.sqm.SqmQuerySource; import org.hibernate.query.common.TemporalUnit; import org.hibernate.query.sqm.TrimSpec; @@ -91,7 +90,6 @@ import org.hibernate.query.sqm.produce.function.FunctionReturnTypeResolver; import org.hibernate.query.sqm.produce.function.StandardFunctionReturnTypeResolvers; import org.hibernate.query.sqm.tree.SqmQuery; -import org.hibernate.query.sqm.tree.SqmStatement; import org.hibernate.query.sqm.tree.SqmTypedNode; import org.hibernate.query.sqm.tree.cte.SqmCteStatement; import org.hibernate.query.sqm.tree.cte.SqmCteTableColumn; @@ -166,6 +164,7 @@ import static jakarta.persistence.metamodel.Type.PersistenceType.BASIC; import static java.util.Arrays.asList; +import static java.util.Collections.emptyList; import static org.hibernate.internal.CoreMessageLogger.CORE_LOGGER; import static org.hibernate.internal.util.collections.CollectionHelper.determineProperSizing; import static org.hibernate.query.internal.QueryHelper.highestPrecedenceType; @@ -216,7 +215,7 @@ public SqmCriteriaNodeBuilder( private Map, HibernateCriteriaBuilder> loadExtensions() { // load registered criteria builder extensions final Map, HibernateCriteriaBuilder> extensions = new HashMap<>(); - for ( CriteriaBuilderExtension extension : ServiceLoader.load( CriteriaBuilderExtension.class ) ) { + for ( var extension : ServiceLoader.load( CriteriaBuilderExtension.class ) ) { extensions.put( extension.getRegistrationKey(), extension.extend( this ) ); } return extensions; @@ -265,7 +264,7 @@ public BasicType getBooleanType() { @Override public BasicType getIntegerType() { - final BasicType integerType = this.integerType; + final var integerType = this.integerType; if ( integerType == null ) { return this.integerType = getTypeConfiguration().getBasicTypeRegistry() @@ -276,7 +275,7 @@ public BasicType getIntegerType() { @Override public BasicType getLongType() { - final BasicType longType = this.longType; + final var longType = this.longType; if ( longType == null ) { return this.longType = getTypeConfiguration().getBasicTypeRegistry() @@ -287,7 +286,7 @@ public BasicType getLongType() { @Override public BasicType getCharacterType() { - final BasicType characterType = this.characterType; + final var characterType = this.characterType; if ( characterType == null ) { return this.characterType = getTypeConfiguration().getBasicTypeRegistry() @@ -298,7 +297,7 @@ public BasicType getCharacterType() { @Override public BasicType getStringType() { - final BasicType stringType = this.stringType; + final var stringType = this.stringType; if ( stringType == null ) { return this.stringType = getTypeConfiguration().getBasicTypeRegistry() @@ -308,17 +307,19 @@ public BasicType getStringType() { } public FunctionReturnTypeResolver getSumReturnTypeResolver() { - final FunctionReturnTypeResolver resolver = sumReturnTypeResolver; + final var resolver = sumReturnTypeResolver; if ( resolver == null ) { - return this.sumReturnTypeResolver = new SumReturnTypeResolver( getTypeConfiguration() ); + return sumReturnTypeResolver = + new SumReturnTypeResolver( getTypeConfiguration() ); } return resolver; } public FunctionReturnTypeResolver getAvgReturnTypeResolver() { - final FunctionReturnTypeResolver resolver = avgReturnTypeResolver; + final var resolver = avgReturnTypeResolver; if ( resolver == null ) { - return this.avgReturnTypeResolver = new AvgFunction.ReturnTypeResolver( getTypeConfiguration() ); + return avgReturnTypeResolver = + new AvgFunction.ReturnTypeResolver( getTypeConfiguration() ); } return resolver; } @@ -349,10 +350,9 @@ public SqmSelectStatement createQuery(Class resultClass) { @Override public SqmSelectStatement createQuery(String hql, Class resultClass) { - final SqmStatement statement = - queryEngine.getHqlTranslator().translate( hql, resultClass ); - if ( statement instanceof SqmSelectStatement ) { - return new SqmSelectStatement<>( (SqmSelectStatement) statement ); + if ( queryEngine.getHqlTranslator().translate( hql, resultClass ) + instanceof SqmSelectStatement selectStatement ) { + return new SqmSelectStatement<>( selectStatement ); } else { throw new IllegalArgumentException("Not a 'select' statement"); @@ -415,10 +415,16 @@ public JpaCriteriaSelect union(CriteriaSelect left, Criteria if ( left instanceof Subquery ) { assert right instanceof Subquery; //noinspection unchecked - return setOperation( SetOperator.UNION, (Subquery) left, (Subquery) right ); + return setOperation( SetOperator.UNION, + (Subquery) left, + (Subquery) right ); + } + else { + //noinspection unchecked + return setOperation( SetOperator.UNION, + (JpaCriteriaQuery) left, + (JpaCriteriaQuery) right ); } - //noinspection unchecked - return setOperation( SetOperator.UNION, (JpaCriteriaQuery) left, (JpaCriteriaQuery) right ); } @Override @@ -433,8 +439,12 @@ public CriteriaSelect unionAll(CriteriaSelect left, Criteria //noinspection unchecked return setOperation( SetOperator.UNION_ALL, (Subquery) left, (Subquery) right ); } - //noinspection unchecked - return setOperation( SetOperator.UNION_ALL, (JpaCriteriaQuery) left, (JpaCriteriaQuery) right ); + else { + //noinspection unchecked + return setOperation( SetOperator.UNION_ALL, + (JpaCriteriaQuery) left, + (JpaCriteriaQuery) right ); + } } @Override @@ -447,10 +457,16 @@ public CriteriaSelect except(CriteriaSelect left, CriteriaSelect ri if ( left instanceof Subquery ) { assert right instanceof Subquery; //noinspection unchecked - return setOperation( SetOperator.EXCEPT, (Subquery) left, (Subquery) right ); + return setOperation( SetOperator.EXCEPT, + (Subquery) left, + (Subquery) right ); + } + else { + //noinspection unchecked + return setOperation( SetOperator.EXCEPT, + (JpaCriteriaQuery) left, + (JpaCriteriaQuery) right ); } - //noinspection unchecked - return setOperation( SetOperator.EXCEPT, (JpaCriteriaQuery) left, (JpaCriteriaQuery) right ); } @Override @@ -458,10 +474,16 @@ public CriteriaSelect exceptAll(CriteriaSelect left, CriteriaSelect if ( left instanceof Subquery ) { assert right instanceof Subquery; //noinspection unchecked - return setOperation( SetOperator.EXCEPT_ALL, (Subquery) left, (Subquery) right ); + return setOperation( SetOperator.EXCEPT_ALL, + (Subquery) left, + (Subquery) right ); + } + else { + //noinspection unchecked + return setOperation( SetOperator.EXCEPT_ALL, + (JpaCriteriaQuery) left, + (JpaCriteriaQuery) right ); } - //noinspection unchecked - return setOperation( SetOperator.EXCEPT_ALL, (JpaCriteriaQuery) left, (JpaCriteriaQuery) right ); } @Override @@ -474,12 +496,12 @@ private JpaCriteriaQuery setOperation( SetOperator operator, CriteriaQuery criteriaQuery, CriteriaQuery... queries) { - final Class resultType = (Class) criteriaQuery.getResultType(); + final var resultType = (Class) criteriaQuery.getResultType(); final List> queryParts = new ArrayList<>( queries.length + 1 ); final Map> cteStatements = new LinkedHashMap<>(); - final SqmSelectStatement selectStatement = (SqmSelectStatement) criteriaQuery; + final var selectStatement = (SqmSelectStatement) criteriaQuery; collectQueryPartsAndCtes( selectStatement, queryParts, cteStatements ); - for ( CriteriaQuery query : queries ) { + for ( var query : queries ) { if ( query.getResultType() != resultType ) { throw new IllegalArgumentException( "Result type of all operands must match" ); } @@ -499,12 +521,12 @@ private JpaSubQuery setOperation( SetOperator operator, Subquery subquery, Subquery... queries) { - final Class resultType = (Class) subquery.getResultType(); - final SqmQuery parent = (SqmQuery) subquery.getParent(); + final var resultType = (Class) subquery.getResultType(); + final var parent = (SqmQuery) subquery.getParent(); final List> queryParts = new ArrayList<>( queries.length + 1 ); final Map> cteStatements = new LinkedHashMap<>(); collectQueryPartsAndCtes( (SqmSelectQuery) subquery, queryParts, cteStatements ); - for ( Subquery query : queries ) { + for ( var query : queries ) { if ( query.getResultType() != resultType ) { throw new IllegalArgumentException( "Result type of all operands must match" ); } @@ -527,9 +549,9 @@ private void collectQueryPartsAndCtes( List> queryParts, Map> cteStatements) { queryParts.add( query.getQueryPart() ); - for ( SqmCteStatement cteStatement : query.getCteStatements() ) { + for ( var cteStatement : query.getCteStatements() ) { final String name = cteStatement.getCteTable().getCteName(); - final SqmCteStatement old = cteStatements.put( name, cteStatement ); + final var old = cteStatements.put( name, cteStatement ); if ( old != null && old != cteStatement ) { throw new IllegalArgumentException( String.format( "Different CTE with same name [%s] found in different set operands!", name ) @@ -545,7 +567,7 @@ public SqmExpression cast(JpaExpression expression, Class castTa @Override public SqmExpression cast(JpaExpression expression, JpaCastTarget castTarget) { - final SqmCastTarget sqmCastTarget = (SqmCastTarget) castTarget; + final var sqmCastTarget = (SqmCastTarget) castTarget; return getFunctionDescriptor( "cast" ).generateSqmExpression( asList( (SqmTypedNode) expression, sqmCastTarget ), sqmCastTarget.getType(), @@ -568,8 +590,10 @@ public SqmCastTarget castTarget(Class castTargetJavaType, int precisio return castTarget( castTargetJavaType, null, precision, scale ); } - private SqmCastTarget castTarget(Class castTargetJavaType, @Nullable Long length, @Nullable Integer precision, @Nullable Integer scale) { - final BasicType type = getTypeConfiguration().standardBasicTypeForJavaType( castTargetJavaType ); + private SqmCastTarget castTarget( + Class castTargetJavaType, + @Nullable Long length, @Nullable Integer precision, @Nullable Integer scale) { + final var type = getTypeConfiguration().standardBasicTypeForJavaType( castTargetJavaType ); return new SqmCastTarget<>( type, length, precision, scale, this ); } @@ -586,12 +610,13 @@ public final SqmPredicate wrap(Expression... expressions) { if ( expressions.length == 1 ) { return wrap( expressions[0] ); } - - final List predicates = new ArrayList<>( expressions.length ); - for ( Expression expression : expressions ) { - predicates.add( wrap( expression ) ); + else { + final List predicates = new ArrayList<>( expressions.length ); + for ( var expression : expressions ) { + predicates.add( wrap( expression ) ); + } + return new SqmJunctionPredicate( Predicate.BooleanOperator.AND, predicates, this ); } - return new SqmJunctionPredicate( Predicate.BooleanOperator.AND, predicates, this ); } @Override @@ -599,12 +624,13 @@ public SqmPredicate wrap(List> restrictions) { if ( restrictions.size() == 1 ) { return wrap( restrictions.get( 0 ) ); } - - final List predicates = new ArrayList<>( restrictions.size() ); - for ( Expression expression : restrictions ) { - predicates.add( wrap( expression ) ); + else { + final List predicates = new ArrayList<>( restrictions.size() ); + for ( var expression : restrictions ) { + predicates.add( wrap( expression ) ); + } + return new SqmJunctionPredicate( Predicate.BooleanOperator.AND, predicates, this ); } - return new SqmJunctionPredicate( Predicate.BooleanOperator.AND, predicates, this ); } @Override @SuppressWarnings("unchecked") @@ -618,8 +644,8 @@ public T unwrap(Class clazz) { @Override public SqmPath fk(Path path) { - final SqmPath sqmPath = (SqmPath) path; - final SqmPathSource toOneReference = sqmPath.getReferencedPathSource(); + final var sqmPath = (SqmPath) path; + final var toOneReference = sqmPath.getReferencedPathSource(); final boolean validToOneRef = toOneReference.getBindableType() == Bindable.BindableType.SINGULAR_ATTRIBUTE && toOneReference instanceof EntitySqmPathSource; @@ -683,9 +709,10 @@ private static JpaCriteriaQuery createUnionSet( SetOperator operator, CriteriaQuery left, CriteriaQuery right) { - assert operator == SetOperator.UNION || operator == SetOperator.UNION_ALL; - final SqmSelectStatement leftSqm = (SqmSelectStatement) left; - final SqmSelectStatement rightSqm = (SqmSelectStatement) right; + assert operator == SetOperator.UNION + || operator == SetOperator.UNION_ALL; + final var leftSqm = (SqmSelectStatement) left; + final var rightSqm = (SqmSelectStatement) right; // SqmQueryGroup is the UNION ALL between the two final SqmQueryGroup sqmQueryGroup = new SqmQueryGroup( @@ -718,9 +745,10 @@ private static JpaCriteriaQuery createIntersectSet( SetOperator operator, CriteriaQuery left, CriteriaQuery right) { - assert operator == SetOperator.INTERSECT || operator == SetOperator.INTERSECT_ALL; - final SqmSelectStatement leftSqm = (SqmSelectStatement) left; - final SqmSelectStatement rightSqm = (SqmSelectStatement) right; + assert operator == SetOperator.INTERSECT + || operator == SetOperator.INTERSECT_ALL; + final var leftSqm = (SqmSelectStatement) left; + final var rightSqm = (SqmSelectStatement) right; // SqmQueryGroup is the UNION ALL between the two final SqmQueryGroup sqmQueryGroup = new SqmQueryGroup( @@ -753,9 +781,10 @@ private static JpaCriteriaQuery createExceptSet( SetOperator operator, CriteriaQuery left, CriteriaQuery right) { - assert operator == SetOperator.EXCEPT || operator == SetOperator.EXCEPT_ALL; - final SqmSelectStatement leftSqm = (SqmSelectStatement) left; - final SqmSelectStatement rightSqm = (SqmSelectStatement) right; + assert operator == SetOperator.EXCEPT + || operator == SetOperator.EXCEPT_ALL; + final var leftSqm = (SqmSelectStatement) left; + final var rightSqm = (SqmSelectStatement) right; // SqmQueryGroup is the UNION ALL between the two final SqmQueryGroup sqmQueryGroup = new SqmQueryGroup( @@ -931,7 +960,7 @@ public SqmTuple tuple(SqmExpressible tupleType, SqmExpression... ex @Override @Deprecated(since = "7", forRemoval = true) public SqmTuple tuple(Class tupleType, List> expressions) { @SuppressWarnings("unchecked") - final SqmExpressible expressibleType = + final var expressibleType = tupleType == null || tupleType == Object[].class ? (SqmDomainType) getTypeConfiguration().resolveTupleType( expressions ) : (SqmEmbeddableDomainType) getDomainModel().embeddable( tupleType ); @@ -1017,7 +1046,7 @@ else if ( Map.class.equals( resultClass ) ) { */ private void checkMultiselect(List> selections) { final HashSet aliases = new HashSet<>( determineProperSizing( selections.size() ) ); - for ( Selection selection : selections ) { + for ( var selection : selections ) { if ( selection.isCompoundSelection() ) { final Class javaType = selection.getJavaType(); if ( javaType.isArray() ) { @@ -1050,7 +1079,7 @@ public SqmExpression avg(Expression argument) { @Override @SuppressWarnings("unchecked") public SqmExpression sum(Expression argument) { - final SqmTypedNode typedNode = (SqmTypedNode) argument; + final var typedNode = (SqmTypedNode) argument; return getFunctionDescriptor( "sum" ).generateSqmExpression( typedNode, (ReturnableType) typedNode.getExpressible().getSqmType(), @@ -1216,10 +1245,9 @@ public JpaExpression truncate(Expression x, Integer n) @Override public SqmExpression neg(Expression x) { - final SqmExpression sqmExpression = (SqmExpression) x; return new SqmUnaryOperation<>( UnaryArithmeticOperator.UNARY_MINUS, - sqmExpression, + (SqmExpression) x, getNodeBuilder() ); } @@ -1353,7 +1381,7 @@ private SqmExpression createSqmArithmeticNode( BinaryArithmeticOperator operator, SqmExpression leftHandExpression, SqmExpression rightHandExpression) { - final SqmExpressible arithmeticType = + final var arithmeticType = getTypeConfiguration() .resolveArithmeticType( leftHandExpression.getNodeType(), @@ -1548,17 +1576,16 @@ public SqmLiteral literal(@Nullable T value, @Nullable SqmExpression SqmLiteral createLiteral(T value, SqmBindableType expressible) { - if ( expressible.getExpressibleJavaType().isInstance( value ) ) { + final var javaType = expressible.getExpressibleJavaType(); + if ( javaType.isInstance( value ) ) { return new SqmLiteral<>( value, expressible, this ); } else { // Just like in HQL, we allow coercion of literal values to the inferred type - final T coercedValue = - expressible.getExpressibleJavaType() - .coerce( value, this::getTypeConfiguration ); + final Object coercedValue = javaType.coerce( value ); // ignore typeInferenceSource and fall back to the value type - return expressible.getExpressibleJavaType().isInstance( coercedValue ) - ? new SqmLiteral<>( coercedValue, expressible, this ) + return javaType.isInstance( coercedValue ) + ? new SqmLiteral<>( javaType.cast( coercedValue ), expressible, this ) : literal( value ); } } @@ -1581,7 +1608,8 @@ private BasicType resolveInferredType(T value) { final var type = ReflectHelper.getClass( value ); final var result = typeConfiguration.getBasicTypeForJavaType( type ); if ( result == null && value instanceof Enum enumValue ) { - return (BasicType) resolveEnumType( typeConfiguration, enumValue ); + return (BasicType) + resolveEnumType( typeConfiguration, enumValue ); } else { return result; @@ -1615,27 +1643,29 @@ public MappingMetamodelImplementor getMappingMetamodel() { @Override public List> literals(T[] values) { if ( values == null || values.length == 0 ) { - return Collections.emptyList(); + return emptyList(); } - - final List> literals = new ArrayList<>(); - for ( T value : values ) { - literals.add( literal( value ) ); + else { + final List> literals = new ArrayList<>(); + for ( T value : values ) { + literals.add( literal( value ) ); + } + return literals; } - return literals; } @Override public List> literals(List values) { if ( values == null || values.isEmpty() ) { - return Collections.emptyList(); + return emptyList(); } - - final List> literals = new ArrayList<>(); - for ( T value : values ) { - literals.add( literal( value ) ); + else { + final List> literals = new ArrayList<>(); + for ( T value : values ) { + literals.add( literal( value ) ); + } + return literals; } - return literals; } @Override @@ -1693,7 +1723,7 @@ public JpaCriteriaParameter parameter(Class paramClass) { public JpaCriteriaParameter parameter(Class paramClass, @Nullable String name) { final var basicType = getTypeConfiguration().getBasicTypeForJavaType( paramClass ); final boolean notBasic = basicType == null; - final BindableType parameterType = + final var parameterType = notBasic && Collection.class.isAssignableFrom( paramClass ) // a Collection-valued, multi-valued parameter ? new MultiValueParameterType<>( (Class) Collection.class ) @@ -1724,10 +1754,8 @@ public SqmExpression concat(List> expressions) { @Override public SqmExpression concat(Expression x, Expression y) { - final SqmExpression xSqmExpression = (SqmExpression) x; - final SqmExpression ySqmExpression = (SqmExpression) y; return getFunctionDescriptor( "concat" ).generateSqmExpression( - asList( xSqmExpression, ySqmExpression ), + asList( (SqmExpression) x, (SqmExpression) y ), null, getQueryEngine() ); @@ -1735,11 +1763,8 @@ public SqmExpression concat(Expression x, Expression y) @Override public SqmExpression concat(Expression x, String y) { - final SqmExpression xSqmExpression = (SqmExpression) x; - final SqmExpression ySqmExpression = value( y, xSqmExpression ); - return getFunctionDescriptor( "concat" ).generateSqmExpression( - asList( xSqmExpression, ySqmExpression ), + asList( (SqmExpression) x, value( y, (SqmExpression) x ) ), null, getQueryEngine() ); @@ -1747,11 +1772,8 @@ public SqmExpression concat(Expression x, String y) { @Override public SqmExpression concat(String x, Expression y) { - final SqmExpression ySqmExpression = (SqmExpression) y; - final SqmExpression xSqmExpression = value( x, ySqmExpression ); - return getFunctionDescriptor( "concat" ).generateSqmExpression( - asList( xSqmExpression, ySqmExpression ), + asList( value( x, (SqmExpression) y ), (SqmExpression) y ), null, getQueryEngine() ); @@ -1759,11 +1781,8 @@ public SqmExpression concat(String x, Expression y) { @Override public SqmExpression concat(String x, String y) { - final SqmExpression xSqmExpression = value( x ); - final SqmExpression ySqmExpression = value( y, xSqmExpression ); - return getFunctionDescriptor( "concat" ).generateSqmExpression( - asList( xSqmExpression, ySqmExpression ), + asList( value( x ), value( y, value( x ) ) ), null, getQueryEngine() ); @@ -1912,23 +1931,10 @@ private SqmFunction createLocateFunctionNode( SqmExpression source, SqmExpression pattern, @Nullable SqmExpression startPosition) { - final List> arguments; - if ( startPosition == null ) { - arguments = asList( - pattern, - source - ); - } - else { - arguments = asList( - pattern, - source, - startPosition - ); - } - return getFunctionDescriptor("locate").generateSqmExpression( - arguments, + startPosition == null + ? asList( pattern, source ) + : asList( pattern, source, startPosition ), null, getQueryEngine() ); @@ -2038,7 +2044,7 @@ public SqmPath version(Path path) { @Override public SqmFunction function(String name, Class type, Expression[] args) { - final BasicType resultType = getTypeConfiguration().standardBasicTypeForJavaType( type ); + final var resultType = getTypeConfiguration().standardBasicTypeForJavaType( type ); return getFunctionTemplate( name, resultType ).generateSqmExpression( expressionList( args ), resultType, @@ -2047,7 +2053,7 @@ public SqmFunction function(String name, Class type, Expression[] a } private SqmFunctionDescriptor getFunctionTemplate(String name, BasicType resultType) { - final SqmFunctionDescriptor functionTemplate = getFunctionDescriptor( name ); + final var functionTemplate = getFunctionDescriptor( name ); if ( functionTemplate == null ) { return new NamedSqmFunctionDescriptor( name, @@ -2064,14 +2070,15 @@ private SqmFunctionDescriptor getFunctionTemplate(String name, BasicType private static List> expressionList(Expression[] jpaExpressions) { if ( jpaExpressions == null || jpaExpressions.length == 0 ) { - return Collections.emptyList(); + return emptyList(); } - - final ArrayList> sqmExpressions = new ArrayList<>(); - for ( Expression jpaExpression : jpaExpressions ) { - sqmExpressions.add( (SqmExpression) jpaExpression ); + else { + final ArrayList> sqmExpressions = new ArrayList<>(); + for ( var jpaExpression : jpaExpressions ) { + sqmExpressions.add( (SqmExpression) jpaExpression ); + } + return sqmExpressions; } - return sqmExpressions; } @Override @@ -2126,8 +2133,11 @@ public SqmExpression value(@Nullable T value, @Nullable SqmExpression SqmExpression> collectionValue(Collection value, SqmExpression typeInferenceSource) { - return inlineValue( value ) ? collectionLiteral( value.toArray() ) : collectionValueParameter( value, typeInferenceSource ); + private SqmExpression> collectionValue( + Collection value, SqmExpression typeInferenceSource) { + return inlineValue( value ) + ? collectionLiteral( value.toArray() ) + : collectionValueParameter( value, typeInferenceSource ); } @Override @@ -2165,15 +2175,16 @@ else if ( bindableType instanceof SqmExpressible expressible ) { @Nullable X value, @Nullable SqmExpression typeInferenceSource, TypeConfiguration typeConfiguration) { - if ( typeInferenceSource != null ) { if ( typeInferenceSource instanceof BindableType ) { //noinspection unchecked return (BindableType) typeInferenceSource; } - final SqmBindableType nodeType = typeInferenceSource.getExpressible(); - if ( nodeType != null ) { - return nodeType; + else { + final var nodeType = typeInferenceSource.getExpressible(); + if ( nodeType != null ) { + return nodeType; + } } } @@ -2194,16 +2205,19 @@ private ValueBindJpaCriteriaParameter valueParameter(@Nullable T value, @ final var widerType = (BindableType) bindableType; return new ValueBindJpaCriteriaParameter<>( widerType, value, this ); } - final T coercedValue = - resolveExpressible( bindableType ).getExpressibleJavaType() - .coerce( value, this::getTypeConfiguration ); - // ignore typeInferenceSource and fall back to the value type - if ( isInstance( bindableType, coercedValue ) ) { - @SuppressWarnings("unchecked") // safe, we just checked - final var widerType = (BindableType) bindableType; - return new ValueBindJpaCriteriaParameter<>( widerType, coercedValue, this ); + else { + final var javaType = resolveExpressible( bindableType ).getExpressibleJavaType(); + final Object coercedValue = javaType.coerce( value ); + // ignore typeInferenceSource and fall back to the value type + if ( isInstance( bindableType, coercedValue ) ) { + @SuppressWarnings("unchecked") // safe, we just checked + final var widerType = (BindableType) bindableType; + return new ValueBindJpaCriteriaParameter<>( widerType, javaType.cast( coercedValue ), this ); + } + else { + return new ValueBindJpaCriteriaParameter<>( getParameterBindType( value ), value, this ); + } } - return new ValueBindJpaCriteriaParameter<>( getParameterBindType( value ), value, this ); } private ValueBindJpaCriteriaParameter> collectionValueParameter(Collection value, SqmExpression elementTypeInferenceSource) { @@ -2349,12 +2363,13 @@ public SqmPredicate and(Predicate... restrictions) { if ( restrictions == null || restrictions.length == 0 ) { return conjunction(); } - - final List predicates = new ArrayList<>( restrictions.length ); - for ( var expression : restrictions ) { - predicates.add( (SqmPredicate) expression ); + else { + final List predicates = new ArrayList<>( restrictions.length ); + for ( var expression : restrictions ) { + predicates.add( (SqmPredicate) expression ); + } + return new SqmJunctionPredicate( Predicate.BooleanOperator.AND, predicates, this ); } - return new SqmJunctionPredicate( Predicate.BooleanOperator.AND, predicates, this ); } @Override @@ -2362,12 +2377,13 @@ public SqmPredicate and(List restrictions) { if ( restrictions == null || restrictions.isEmpty() ) { return conjunction(); } - - final List predicates = new ArrayList<>( restrictions.size() ); - for ( var expression : restrictions ) { - predicates.add( (SqmPredicate) expression ); + else { + final List predicates = new ArrayList<>( restrictions.size() ); + for ( var expression : restrictions ) { + predicates.add( (SqmPredicate) expression ); + } + return new SqmJunctionPredicate( Predicate.BooleanOperator.AND, predicates, this ); } - return new SqmJunctionPredicate( Predicate.BooleanOperator.AND, predicates, this ); } @Override @@ -2385,12 +2401,13 @@ public SqmPredicate or(Predicate... restrictions) { if ( restrictions == null || restrictions.length == 0 ) { return disjunction(); } - - final List predicates = new ArrayList<>( restrictions.length ); - for ( var expression : restrictions ) { - predicates.add( (SqmPredicate) expression ); + else { + final List predicates = new ArrayList<>( restrictions.length ); + for ( var expression : restrictions ) { + predicates.add( (SqmPredicate) expression ); + } + return new SqmJunctionPredicate( Predicate.BooleanOperator.OR, predicates, this ); } - return new SqmJunctionPredicate( Predicate.BooleanOperator.OR, predicates, this ); } @Override @@ -2398,12 +2415,13 @@ public SqmPredicate or(List restrictions) { if ( restrictions == null || restrictions.isEmpty() ) { return disjunction(); } - - final List predicates = new ArrayList<>( restrictions.size() ); - for ( var expression : restrictions ) { - predicates.add( (SqmPredicate) expression ); + else { + final List predicates = new ArrayList<>( restrictions.size() ); + for ( var expression : restrictions ) { + predicates.add( (SqmPredicate) expression ); + } + return new SqmJunctionPredicate( Predicate.BooleanOperator.OR, predicates, this ); } - return new SqmJunctionPredicate( Predicate.BooleanOperator.OR, predicates, this ); } @Override @@ -2464,13 +2482,11 @@ public > SqmPredicate between(Expression> SqmPredicate between(Expression value, Y lower, Y upper) { - final SqmExpression valueExpression = (SqmExpression) value; - final SqmExpression lowerExpr = value( lower, valueExpression ); - final SqmExpression upperExpr = value( upper, valueExpression ); + final var valueExpression = (SqmExpression) value; return new SqmBetweenPredicate( valueExpression, - lowerExpr, - upperExpr, + value( lower, valueExpression ), + value( upper, valueExpression ), false, this ); @@ -2488,7 +2504,7 @@ public SqmPredicate equal(Expression x, Expression y) { @Override public SqmPredicate equal(Expression x, Object y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.EQUAL, @@ -2509,7 +2525,7 @@ public SqmPredicate notEqual(Expression x, Expression y) { @Override public SqmPredicate notEqual(Expression x, Object y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.NOT_EQUAL, @@ -2530,7 +2546,7 @@ public SqmPredicate distinctFrom(Expression x, Expression y) { @Override public SqmPredicate distinctFrom(Expression x, Object y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.DISTINCT_FROM, @@ -2551,7 +2567,7 @@ public SqmPredicate notDistinctFrom(Expression x, Expression y) { @Override public SqmPredicate notDistinctFrom(Expression x, Object y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.NOT_DISTINCT_FROM, @@ -2572,7 +2588,7 @@ public > SqmPredicate greaterThan(Expression> SqmPredicate greaterThan(Expression x, Y y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.GREATER_THAN, @@ -2593,7 +2609,7 @@ public > SqmPredicate greaterThanOrEqualTo(Expre @Override public > SqmPredicate greaterThanOrEqualTo(Expression x, Y y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.GREATER_THAN_OR_EQUAL, @@ -2614,7 +2630,7 @@ public > SqmPredicate lessThan(Expression> SqmPredicate lessThan(Expression x, Y y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.LESS_THAN, @@ -2635,7 +2651,7 @@ public > SqmPredicate lessThanOrEqualTo(Expressi @Override public > SqmPredicate lessThanOrEqualTo(Expression x, Y y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.LESS_THAN_OR_EQUAL, @@ -2656,7 +2672,7 @@ public SqmPredicate gt(Expression x, Expression x, Number y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.GREATER_THAN, @@ -2677,7 +2693,7 @@ public SqmPredicate ge(Expression x, Expression x, Number y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.GREATER_THAN_OR_EQUAL, @@ -2698,7 +2714,7 @@ public SqmPredicate lt(Expression x, Expression x, Number y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.LESS_THAN, @@ -2719,7 +2735,7 @@ public SqmPredicate le(Expression x, Expression x, Number y) { - final SqmExpression yExpr = value( y, (SqmExpression) x ); + final var yExpr = value( y, (SqmExpression) x ); return new SqmComparisonPredicate( (SqmExpression) x, ComparisonOperator.LESS_THAN_OR_EQUAL, @@ -3028,7 +3044,7 @@ public SqmInPredicate in(Expression expression) { @SuppressWarnings("unchecked") public SqmInPredicate in(Expression expression, Expression... values) { final List> listExpressions = new ArrayList<>( values.length ); - for ( Expression value : values ) { + for ( var value : values ) { listExpressions.add( (SqmExpression) value ); } return new SqmInListPredicate<>( (SqmExpression) expression, listExpressions, this ); @@ -3037,7 +3053,7 @@ public SqmInPredicate in(Expression expression, Expression SqmInPredicate in(Expression expression, T... values) { - final SqmExpression sqmExpression = (SqmExpression) expression; + final var sqmExpression = (SqmExpression) expression; final List> listExpressions = new ArrayList<>( values.length ); for ( T value : values ) { listExpressions.add( value( value, sqmExpression ) ); @@ -3048,7 +3064,7 @@ public SqmInPredicate in(Expression expression, T... values) @Override @SuppressWarnings("unchecked") public SqmInPredicate in(Expression expression, Collection values) { - final SqmExpression sqmExpression = (SqmExpression) expression; + final var sqmExpression = (SqmExpression) expression; final List> listExpressions = new ArrayList<>( values.size() ); for ( T value : values ) { listExpressions.add( value( value, sqmExpression ) ); @@ -3128,7 +3144,7 @@ public SqmFunction sql(String pattern, Class type, Expression... ar @Override public SqmFunction format(Expression datetime, String pattern) { - final SqmFormat sqmFormat = new SqmFormat( pattern, getStringType(), this ); + final var sqmFormat = new SqmFormat( pattern, getStringType(), this ); return getFunctionDescriptor( "format" ).generateSqmExpression( asList( (SqmExpression) datetime, sqmFormat ), null, @@ -3329,9 +3345,9 @@ public SqmFunction overlay( Expression replacement, Expression start, @Nullable Expression length) { - SqmExpression sqmString = (SqmExpression) string; - SqmExpression sqmReplacement = (SqmExpression) replacement; - SqmExpression sqmStart = (SqmExpression) start; + final var sqmString = (SqmExpression) string; + final var sqmReplacement = (SqmExpression) replacement; + final var sqmStart = (SqmExpression) start; return getFunctionDescriptor( "overlay" ).generateSqmExpression( ( length == null ? asList( sqmString, sqmReplacement, sqmStart ) @@ -3402,9 +3418,9 @@ public SqmFunction pad( Expression x, Expression length, @Nullable Expression padChar) { - SqmExpression source = (SqmExpression) x; - SqmExpression sqmLength = (SqmExpression) length; - SqmTrimSpecification padSpec = new SqmTrimSpecification( + final var source = (SqmExpression) x; + final var sqmLength = (SqmExpression) length; + final var padSpec = new SqmTrimSpecification( ts == null ? TrimSpec.TRAILING : fromCriteriaTrimSpec( ts ), this ); @@ -3883,24 +3899,21 @@ public SqmExpression functionWithinGroup( @Nullable JpaPredicate filter, @Nullable JpaWindow window, Expression... args) { - SqmOrderByClause withinGroupClause = new SqmOrderByClause(); + final var withinGroupClause = new SqmOrderByClause(); if ( order != null ) { withinGroupClause.addSortSpecification( (SqmSortSpecification) order ); } - SqmPredicate sqmFilter = filter != null ? (SqmPredicate) filter : null; - SqmExpression function = getFunctionDescriptor( name ).generateOrderedSetAggregateSqmExpression( - expressionList( args ), - sqmFilter, - withinGroupClause, - null, - queryEngine - ); - if ( window == null ) { - return function; - } - else { - return new SqmOver<>( function, (SqmWindow) window ); - } + final var sqmFilter = filter != null ? (SqmPredicate) filter : null; + final SqmExpression function = + getFunctionDescriptor( name ) + .generateOrderedSetAggregateSqmExpression( + expressionList( args ), + sqmFilter, + withinGroupClause, + null, + queryEngine + ); + return window == null ? function : new SqmOver<>( function, (SqmWindow) window ); } @Override 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 78483d6625b4..35ad112e177b 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 @@ -5812,8 +5812,7 @@ else if ( Character.class.isAssignableFrom( valueConverter.getRelationalJavaType // so we allow coercion between the number types else if ( Number.class.isAssignableFrom( valueConverter.getRelationalJavaType().getJavaTypeClass() ) && value instanceof Number ) { - return valueConverter.getRelationalJavaType() - .coerce( value, creationContext::getTypeConfiguration ); + return valueConverter.getRelationalJavaType().coerce( value ); } else { throw new SemanticException( diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmDmlStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmDmlStatement.java index 6e88b7a10c9c..a4a5a48dbdd5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmDmlStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmDmlStatement.java @@ -25,6 +25,8 @@ import java.util.Set; import java.util.function.Function; +import static java.lang.Character.isAlphabetic; + /** * @author Steve Ebersole */ @@ -56,17 +58,19 @@ public AbstractSqmDmlStatement( } protected Map> copyCteStatements(SqmCopyContext context) { - final Map> cteStatements = new LinkedHashMap<>( this.cteStatements.size() ); - for ( Map.Entry> entry : this.cteStatements.entrySet() ) { - cteStatements.put( entry.getKey(), entry.getValue().copy( context ) ); + final Map> copy = + new LinkedHashMap<>( cteStatements.size() ); + for ( var entry : cteStatements.entrySet() ) { + copy.put( entry.getKey(), entry.getValue().copy( context ) ); } - return cteStatements; + return copy; } protected void putAllCtes(SqmCteContainer cteContainer) { - for ( SqmCteStatement cteStatement : cteContainer.getCteStatements() ) { - if ( cteStatements.putIfAbsent( cteStatement.getCteTable().getCteName(), cteStatement ) != null ) { - throw new IllegalArgumentException( "A CTE with the label " + cteStatement.getCteTable().getCteName() + " already exists" ); + for ( var cteStatement : cteContainer.getCteStatements() ) { + final String cteName = cteStatement.getCteTable().getCteName(); + if ( cteStatements.putIfAbsent( cteName, cteStatement ) != null ) { + throw new IllegalArgumentException( "A CTE with the label " + cteName + " already exists" ); } } } @@ -138,7 +142,7 @@ private String validateCteName(String name) { if ( name == null || name.isBlank() ) { throw new IllegalArgumentException( "Illegal empty CTE name" ); } - if ( !Character.isAlphabetic( name.charAt( 0 ) ) ) { + if ( !isAlphabetic( name.charAt( 0 ) ) ) { throw new IllegalArgumentException( String.format( "Illegal CTE name [%s]. Names must start with an alphabetic character!", @@ -150,7 +154,7 @@ private String validateCteName(String name) { } private JpaCteCriteria withInternal(String name, AbstractQuery criteria) { - final SqmCteStatement cteStatement = new SqmCteStatement<>( + final var cteStatement = new SqmCteStatement<>( name, (SqmSelectQuery) criteria, this, @@ -167,7 +171,7 @@ private JpaCteCriteria withInternal( AbstractQuery baseCriteria, boolean unionDistinct, Function, AbstractQuery> recursiveCriteriaProducer) { - final SqmCteStatement cteStatement = new SqmCteStatement<>( + final var cteStatement = new SqmCteStatement<>( name, (SqmSelectQuery) baseCriteria, unionDistinct, @@ -199,7 +203,7 @@ public SqmSubQuery subquery(Class type) { protected void appendHqlCteString(StringBuilder sb, SqmRenderContext context) { if ( !cteStatements.isEmpty() ) { sb.append( "with " ); - for ( SqmCteStatement value : cteStatements.values() ) { + for ( var value : cteStatements.values() ) { value.appendHqlString( sb, context ); sb.append( ", " ); } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmRestrictedDmlStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmRestrictedDmlStatement.java index 82531d198607..44185863958d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmRestrictedDmlStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmRestrictedDmlStatement.java @@ -60,7 +60,7 @@ protected AbstractSqmRestrictedDmlStatement( return null; } else { - final SqmPredicate predicate = whereClause.getPredicate(); + final var predicate = whereClause.getPredicate(); return new SqmWhereClause( predicate == null ? null : predicate.copy( context ), nodeBuilder() ); } } @@ -70,8 +70,8 @@ public SqmRoot from(Class entityClass) { } public SqmRoot from(EntityType entity) { - final EntityDomainType entityDomainType = (EntityDomainType) entity; - final SqmRoot root = getTarget(); + final var entityDomainType = (EntityDomainType) entity; + final var root = getTarget(); if ( root.getModel() != entity ) { throw new IllegalArgumentException( String.format( @@ -124,7 +124,7 @@ protected void setWhere(Predicate @Nullable ... restrictions) { // Clear the current predicate if one is present whereClause.setPredicate( null ); if ( restrictions != null ) { - for ( Predicate restriction : restrictions ) { + for ( var restriction : restrictions ) { whereClause.applyPredicate( (SqmPredicate) restriction ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmStatement.java index be3d59fae475..83217d39c292 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/AbstractSqmStatement.java @@ -49,7 +49,7 @@ protected AbstractSqmStatement( } else { final Set> parameters = new LinkedHashSet<>( this.parameters.size() ); - for ( SqmParameter parameter : this.parameters ) { + for ( var parameter : this.parameters ) { parameters.add( parameter.copy( context ) ); } return parameters; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/cte/SqmCteStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/cte/SqmCteStatement.java index 4ab2ad036baa..dc476e8d841d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/cte/SqmCteStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/cte/SqmCteStatement.java @@ -147,7 +147,7 @@ private SqmCteStatement( @Override public SqmCteStatement copy(SqmCopyContext context) { - final SqmCteStatement existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/delete/SqmDeleteStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/delete/SqmDeleteStatement.java index d2ddd024a301..136783583b11 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/delete/SqmDeleteStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/delete/SqmDeleteStatement.java @@ -61,7 +61,7 @@ public SqmDeleteStatement( @Override public SqmDeleteStatement copy(SqmCopyContext context) { - final SqmDeleteStatement existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmFrom.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmFrom.java index 76f83749a12a..243382d20741 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmFrom.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmFrom.java @@ -85,7 +85,6 @@ protected AbstractSqmFrom( @Nullable String alias, NodeBuilder nodeBuilder) { super( navigablePath, referencedNavigable, lhs, nodeBuilder ); - if ( lhs == null ) { throw new IllegalArgumentException( "LHS cannot be null" ); } @@ -135,24 +134,34 @@ protected void copyTo(AbstractSqmFrom target, SqmCopyContext context) { super.copyTo( target, context ); final var joins = this.joins; if ( joins != null ) { - final ArrayList> newJoins = - new ArrayList<>( joins.size() ); - for ( var join : joins ) { - newJoins.add( join.copy( context ) ); - } - target.joins = newJoins; + target.joins = copyJoins( context, joins ); } final var treats = this.treats; if ( treats != null ) { - final ArrayList> newTreats = - new ArrayList<>( treats.size() ); - for ( SqmTreatedFrom treat : treats ) { - newTreats.add( treat.copy( context ) ); - } - target.treats = newTreats; + target.treats = copyTreats( context, treats ); } } + private static ArrayList> copyTreats( + SqmCopyContext context, List> treats) { + final ArrayList> newTreats = + new ArrayList<>( treats.size() ); + for ( SqmTreatedFrom treat : treats ) { + newTreats.add( treat.copy( context ) ); + } + return newTreats; + } + + private static ArrayList> copyJoins( + SqmCopyContext context, List> joins) { + final ArrayList> newJoins = + new ArrayList<>( joins.size() ); + for ( var join : joins ) { + newJoins.add( join.copy( context ) ); + } + return newJoins; + } + @Override public @Nullable String getExplicitAlias() { return alias; @@ -203,7 +212,7 @@ public SqmPath resolvePathPart( if ( resolvedPath != null ) { return resolvedPath; } - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } @@ -234,22 +243,21 @@ public void addSqmJoin(SqmJoin join) { @Internal public void removeLeftFetchJoins() { - final List> joins = this.joins; + final var joins = this.joins; if ( joins != null ) { for ( var join : new ArrayList<>( joins ) ) { - if ( join instanceof SqmAttributeJoin attributeJoin ) { - if ( attributeJoin.isFetched() ) { - if ( join.getSqmJoinType() == SqmJoinType.LEFT ) { - joins.remove( join ); - final var orderedJoins = findRoot().getOrderedJoins(); - if ( orderedJoins != null ) { - orderedJoins.remove( join ); - } - } - else { - attributeJoin.clearFetched(); + if ( join instanceof SqmAttributeJoin attributeJoin + && attributeJoin.isFetched() ) { + if ( join.getSqmJoinType() == SqmJoinType.LEFT ) { + joins.remove( join ); + final var orderedJoins = findRoot().getOrderedJoins(); + if ( orderedJoins != null ) { + orderedJoins.remove( join ); } } + else { + attributeJoin.clearFetched(); + } } } } @@ -267,7 +275,8 @@ public void visitSqmJoins(Consumer> consumer) { return treats == null ? emptyList() : treats; } - protected > @Nullable X findTreat(ManagedDomainType targetType, @Nullable String alias) { + protected > @Nullable X findTreat( + ManagedDomainType targetType, @Nullable String alias) { if ( treats != null ) { for ( var treat : treats ) { if ( treat.getModel() == targetType ) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmJoin.java index f0bc2d5ceb4d..dbee0745575e 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmJoin.java @@ -57,20 +57,18 @@ public void setJoinPredicate(@Nullable SqmPredicate predicate) { LOG.tracef( "Setting join predicate [%s] (was [%s])", predicate, - this.onClausePredicate == null ? "" : this.onClausePredicate + onClausePredicate == null ? "" : this.onClausePredicate ); } - this.onClausePredicate = predicate; + onClausePredicate = predicate; } public void applyRestriction(SqmPredicate restriction) { - if ( this.onClausePredicate == null ) { - this.onClausePredicate = restriction; - } - else { - this.onClausePredicate = combinePredicates( onClausePredicate, restriction ); - } + onClausePredicate = + onClausePredicate == null + ? restriction + : combinePredicates( onClausePredicate, restriction ); } protected void copyTo(AbstractSqmJoin target, SqmCopyContext context) { diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmPath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmPath.java index 41963d633b34..d8dab6a5801a 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmPath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmPath.java @@ -16,7 +16,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.hibernate.AssertionFailure; import org.hibernate.metamodel.mapping.CollectionPart; -import org.hibernate.metamodel.mapping.EntityDiscriminatorMapping; import org.hibernate.metamodel.model.domain.EntityDomainType; import org.hibernate.metamodel.model.domain.ManagedDomainType; import org.hibernate.metamodel.model.domain.PersistentAttribute; @@ -38,6 +37,7 @@ import static java.util.Collections.emptyList; import static org.hibernate.internal.util.NullnessUtil.castNonNull; +import static org.hibernate.metamodel.mapping.EntityDiscriminatorMapping.DISCRIMINATOR_ROLE_NAME; /** * @author Steve Ebersole @@ -73,22 +73,27 @@ protected void copyTo(AbstractSqmPath target, SqmCopyContext context) { // meant for assertions only private boolean navigablePathsMatch(AbstractSqmPath target) { - final SqmPath lhs = getLhsOrRoot(); - final SqmPath targetLhs = target.getLhsOrRoot(); + final var lhs = getLhsOrRoot(); + final var targetLhs = target.getLhsOrRoot(); return lhs == null && targetLhs == null - || lhs != null && targetLhs != null - && (lhs.getNavigablePath() == targetLhs.getNavigablePath() - || getRoot( lhs ).getNodeType() instanceof SqmPolymorphicRootDescriptor - ); + || lhs != null && targetLhs != null && ( samePath( lhs, targetLhs ) || isPolymorphicRoot( lhs ) ); + } + + private static boolean samePath(SqmPath lhs, SqmPath targetLhs) { + return lhs.getNavigablePath() == targetLhs.getNavigablePath(); + } + + private boolean isPolymorphicRoot(SqmPath lhs) { + return getRoot( lhs ).getNodeType() instanceof SqmPolymorphicRootDescriptor; } private @Nullable SqmPath getLhsOrRoot() { - final SqmPath lhs = getLhs(); + final var lhs = getLhs(); return lhs != null ? lhs : findRoot(); } private SqmPath getRoot(SqmPath lhs) { - final SqmPath parent = lhs.getLhs(); + final var parent = lhs.getLhs(); return parent == null ? lhs : getRoot( parent ); } @@ -131,9 +136,9 @@ public void registerReusablePath(SqmPath path) { reusablePaths = new HashMap<>(); } final String relativeName = path.getNavigablePath().getLocalName(); - final SqmPath previous = reusablePaths.put( relativeName, path ); + final var previous = reusablePaths.put( relativeName, path ); if ( previous != null && previous != path ) { - throw new IllegalStateException( "Implicit-join path registration unexpectedly overrode previous registration - " + relativeName ); + throw new IllegalStateException( "Implicit join path registration unexpectedly overrode previous registration - " + relativeName ); } } @@ -159,11 +164,12 @@ public SqmPathSource getModel() { @Override public SqmPathSource getResolvedModel() { - final SqmPathSource pathSource = getReferencedPathSource(); - final SqmPath lhs = getLhs(); + final var pathSource = getReferencedPathSource(); + final var lhs = getLhs(); if ( pathSource.isGeneric() && lhs != null && lhs.getResolvedModel().getPathType() instanceof SqmManagedDomainType lhsType ) { - final var concreteAttribute = lhsType.findConcreteGenericAttribute( pathSource.getPathName() ); + final var concreteAttribute = + lhsType.findConcreteGenericAttribute( pathSource.getPathName() ); if ( concreteAttribute != null ) { //noinspection unchecked return (SqmPathSource) concreteAttribute; @@ -189,34 +195,31 @@ public SqmPathSource getResolvedModel() { @Override public SqmExpression> type() { - final SqmPathSource referencedPathSource = getReferencedPathSource(); - final SqmPathSource subPathSource = - referencedPathSource.findSubPathSource( EntityDiscriminatorMapping.DISCRIMINATOR_ROLE_NAME ); + final var referencedPathSource = getReferencedPathSource(); + final var subPathSource = + referencedPathSource.findSubPathSource( DISCRIMINATOR_ROLE_NAME ); if ( subPathSource == null ) { - return new SqmLiteral<>( - referencedPathSource.getBindableJavaType(), + return new SqmLiteral<>( referencedPathSource.getBindableJavaType(), nodeBuilder().getTypeConfiguration().getBasicTypeForJavaType( Class.class ), - nodeBuilder() - ); + nodeBuilder() ); } else { @SuppressWarnings("unchecked") final var discriminatorSource = (SqmPathSource>) subPathSource; - return resolvePath( EntityDiscriminatorMapping.DISCRIMINATOR_ROLE_NAME, discriminatorSource ); + return resolvePath( DISCRIMINATOR_ROLE_NAME, discriminatorSource ); } } @Override public SqmPath get(String attributeName) { @SuppressWarnings("unchecked") - final SqmPathSource subNavigable = (SqmPathSource) getResolvedModel().getSubPathSource( attributeName ); + final var subNavigable = (SqmPathSource) getResolvedModel().getSubPathSource( attributeName ); return resolvePath( attributeName, subNavigable ); } @Override - public SqmPath get(String attributeName, boolean includeSubtypes) { - @SuppressWarnings("unchecked") - final SqmPathSource subPathSource = (SqmPathSource) + public SqmPath get(String attributeName, boolean includeSubtypes) { + final var subPathSource = (SqmPathSource) getResolvedModel().getSubPathSource( attributeName, includeSubtypes ); return resolvePath( attributeName, subPathSource ); } @@ -227,11 +230,12 @@ protected SqmPath resolvePath(PersistentAttribute attribute) { } protected SqmPath resolvePath(String attributeName, SqmPathSource pathSource) { - final SqmPathSource intermediatePathSource = - getResolvedModel().getIntermediatePathSource( pathSource ); + final var intermediatePathSource = + getResolvedModel() + .getIntermediatePathSource( pathSource ); if ( reusablePaths == null ) { reusablePaths = new HashMap<>(); - final SqmPath path = pathSource.createSqmPath( this, intermediatePathSource ); + final var path = pathSource.createSqmPath( this, intermediatePathSource ); reusablePaths.put( attributeName, path ); return path; } @@ -244,28 +248,29 @@ protected SqmPath resolvePath(String attributeName, SqmPathSource path } protected SqmTreatedPath getTreatedPath(ManagedDomainType treatTarget) { - final NavigablePath treat = getNavigablePath().treatAs( treatTarget.getTypeName() ); - final SqmPath lhs = castNonNull( getLhs() ); - final SqmPath reusablePath = lhs.getReusablePath( treat.getLocalName() ); - //TODO: check this cast - @SuppressWarnings("unchecked") - final SqmTreatedPath path = (SqmTreatedPath) reusablePath; + final var treat = getNavigablePath().treatAs( treatTarget.getTypeName() ); + final var lhs = castNonNull( getLhs() ); + final var path = lhs.getReusablePath( treat.getLocalName() ); if ( path == null ) { - final SqmTreatedPath treatedPath; - if ( treatTarget instanceof SqmEntityDomainType entityDomainType ) { - treatedPath = new SqmTreatedEntityValuedSimplePath<>( this, entityDomainType, nodeBuilder() ); - } - else if ( treatTarget instanceof SqmEmbeddableDomainType embeddableDomainType ) { - treatedPath = new SqmTreatedEmbeddedValuedSimplePath<>( this, embeddableDomainType ); - } - else { - throw new AssertionFailure( "Unrecognized treat target type: " + treatTarget.getTypeName() ); - } + final var treatedPath = treat( treatTarget ); lhs.registerReusablePath( treatedPath ); return treatedPath; } else { - return path; + //TODO: check this cast + return (SqmTreatedPath) path; + } + } + + private SqmTreatedPath treat(ManagedDomainType treatTarget) { + if ( treatTarget instanceof SqmEntityDomainType entityDomainType ) { + return new SqmTreatedEntityValuedSimplePath<>( this, entityDomainType, nodeBuilder() ); + } + else if ( treatTarget instanceof SqmEmbeddableDomainType embeddableDomainType ) { + return new SqmTreatedEmbeddedValuedSimplePath<>( this, embeddableDomainType ); + } + else { + throw new AssertionFailure( "Unrecognized treat target type: " + treatTarget.getTypeName() ); } } @@ -304,10 +309,9 @@ public SqmTreatedPath treatAs(EntityDomainType treatTarge * and if not creates a copy of the navigable path with the correct parent. */ protected NavigablePath getNavigablePathCopy(SqmPath parent) { - final NavigablePath realParentPath = getRealParentPath( - castNonNull( navigablePath.getRealParent() ), - parent.getNavigablePath() - ); + final var realParentPath = + getRealParentPath( castNonNull( navigablePath.getRealParent() ), + parent.getNavigablePath() ); if ( realParentPath != null ) { return realParentPath.append( navigablePath.getLocalName(), navigablePath.getAlias() ); } @@ -315,38 +319,34 @@ protected NavigablePath getNavigablePathCopy(SqmPath parent) { } private @Nullable NavigablePath getRealParentPath(NavigablePath realParent, NavigablePath parent) { - @Nullable NavigablePath realParentPath; if ( parent == realParent ) { - realParentPath = null; + return null; } - else if ( realParent instanceof EntityIdentifierNavigablePath entityIdentifierNavigablePath ) { - realParentPath = getRealParentPath( castNonNull( realParent.getRealParent() ), parent ); - if ( realParentPath != null ) { - realParentPath = new EntityIdentifierNavigablePath( - realParentPath, - entityIdentifierNavigablePath.getIdentifierAttributeName() - ); + else { + final var realParentParent = realParent.getRealParent(); + if ( realParent instanceof EntityIdentifierNavigablePath entityIdentifierNavigablePath ) { + final var realParentPath = getRealParentPath( castNonNull( realParentParent ), parent ); + return realParentPath != null + ? new EntityIdentifierNavigablePath( realParentPath, + entityIdentifierNavigablePath.getIdentifierAttributeName() ) + : null; } - } - else if ( realParent.getAlias() == null && realParent instanceof TreatedNavigablePath ) { - // This might be an implicitly treated parent path, check with the non-treated parent - realParentPath = getRealParentPath( castNonNull( realParent.getRealParent() ), parent ); - if ( realParentPath != null ) { - realParentPath = realParentPath.treatAs( realParent.getLocalName().substring( 1 ) ); + else if ( realParent instanceof TreatedNavigablePath && realParent.getAlias() == null ) { + // This might be an implicitly treated parent path, check with the non-treated parent + final var realParentPath = getRealParentPath( castNonNull( realParentParent ), parent ); + return realParentPath != null + ? realParentPath.treatAs( realParent.getLocalName().substring( 1 ) ) + : null; } - } - else if ( CollectionPart.Nature.fromNameExact( realParent.getLocalName() ) != null ) { - if ( parent == realParent.getRealParent() ) { - realParentPath = null; + else if ( CollectionPart.Nature.fromNameExact( realParent.getLocalName() ) != null ) { + return parent == realParentParent + ? null + : parent.append( realParent.getLocalName() ); } else { - realParentPath = parent.append( realParent.getLocalName() ); + return parent; } } - else { - realParentPath = parent; - } - return realParentPath; } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmSimplePath.java index 5a2508e074d2..14acc0b67729 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/AbstractSqmSimplePath.java @@ -63,7 +63,7 @@ public void appendHqlString(StringBuilder hql, SqmRenderContext context) { @Override public SqmPathSource getReferencedPathSource() { - final SqmPathSource pathSource = super.getReferencedPathSource(); + final var pathSource = super.getReferencedPathSource(); return pathSource instanceof SqmSingularPersistentAttribute attribute ? attribute.getSqmPathSource() : pathSource; diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/NonAggregatedCompositeSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/NonAggregatedCompositeSimplePath.java index 0336e139d421..38a4755dec23 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/NonAggregatedCompositeSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/NonAggregatedCompositeSimplePath.java @@ -32,13 +32,13 @@ public NonAggregatedCompositeSimplePath( @Override public NonAggregatedCompositeSimplePath copy(SqmCopyContext context) { - final NonAggregatedCompositeSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmPath lhsCopy = getLhs().copy( context ); - final NonAggregatedCompositeSimplePath path = context.registerCopy( + final var lhsCopy = getLhs().copy( context ); + final var path = context.registerCopy( this, new NonAggregatedCompositeSimplePath<>( getNavigablePathCopy( lhsCopy ), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmAnyValuedSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmAnyValuedSimplePath.java index a9cb529f5843..a9ecb6eb5602 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmAnyValuedSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmAnyValuedSimplePath.java @@ -42,13 +42,13 @@ public SqmAnyValuedSimplePath( @Override public SqmAnyValuedSimplePath copy(SqmCopyContext context) { - final SqmAnyValuedSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmPath lhsCopy = getLhs().copy( context ); - final SqmAnyValuedSimplePath path = context.registerCopy( + final var lhsCopy = getLhs().copy( context ); + final var path = context.registerCopy( this, new SqmAnyValuedSimplePath<>( getNavigablePathCopy( lhsCopy ), @@ -97,7 +97,7 @@ public SqmPath resolvePathPart( String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBagJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBagJoin.java index 56f0734df782..0261947e3b76 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBagJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBagJoin.java @@ -51,12 +51,12 @@ protected SqmBagJoin( @Override public SqmBagJoin copy(SqmCopyContext context) { - final SqmBagJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmFrom lhsCopy = getLhs().copy( context ); - final SqmBagJoin path = context.registerCopy( + final var lhsCopy = getLhs().copy( context ); + final var path = context.registerCopy( this, new SqmBagJoin<>( lhsCopy, diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBasicValuedSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBasicValuedSimplePath.java index fd9da0ce5153..63a5e462e3a5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBasicValuedSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmBasicValuedSimplePath.java @@ -8,7 +8,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.hibernate.metamodel.mapping.CollectionPart; import org.hibernate.metamodel.model.domain.EntityDomainType; -import org.hibernate.query.hql.spi.SqmPathRegistry; import org.hibernate.query.spi.QueryEngine; import org.hibernate.query.sqm.SqmBindableType; import org.hibernate.query.sqm.UnknownPathException; @@ -54,13 +53,13 @@ public SqmBasicValuedSimplePath( @Override public SqmBasicValuedSimplePath copy(SqmCopyContext context) { - final SqmBasicValuedSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmPath lhsCopy = getLhs().copy( context ); - final SqmBasicValuedSimplePath path = context.registerCopy( + final var lhsCopy = getLhs().copy( context ); + final var path = context.registerCopy( this, new SqmBasicValuedSimplePath<>( getNavigablePathCopy( lhsCopy ), @@ -105,7 +104,7 @@ public SqmPath resolveIndexedAccess( SqmExpression selector, boolean isTerminal, SqmCreationState creationState) { - final SqmPathRegistry pathRegistry = + final var pathRegistry = creationState.getCurrentProcessingState().getPathRegistry(); final String alias = selector.toHqlString(); final NavigablePath navigablePath = diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedBagJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedBagJoin.java index db109cab8805..70b1f411f211 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedBagJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedBagJoin.java @@ -50,11 +50,11 @@ private SqmCorrelatedBagJoin( @Override public SqmCorrelatedBagJoin copy(SqmCopyContext context) { - final SqmCorrelatedBagJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedBagJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedBagJoin<>( getLhs().copy( context ), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedCrossJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedCrossJoin.java index f0b3250a89fc..e3865dab2c08 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedCrossJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedCrossJoin.java @@ -6,7 +6,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.hibernate.query.hql.spi.SqmCreationProcessingState; -import org.hibernate.query.hql.spi.SqmPathRegistry; import org.hibernate.query.sqm.SemanticQueryWalker; import org.hibernate.query.sqm.tree.SqmCopyContext; import org.hibernate.query.sqm.tree.from.SqmCrossJoin; @@ -45,11 +44,11 @@ private SqmCorrelatedCrossJoin( @Override public SqmCorrelatedCrossJoin copy(SqmCopyContext context) { - final SqmCorrelatedCrossJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedCrossJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedCrossJoin<>( getReferencedPathSource(), @@ -85,7 +84,7 @@ public SqmRoot getCorrelatedRoot() { @Override public SqmCorrelatedCrossJoin makeCopy(SqmCreationProcessingState creationProcessingState) { - final SqmPathRegistry pathRegistry = creationProcessingState.getPathRegistry(); + final var pathRegistry = creationProcessingState.getPathRegistry(); return new SqmCorrelatedCrossJoin<>( getReferencedPathSource(), getExplicitAlias(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedCteJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedCteJoin.java index fdec8d254534..736874882396 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedCteJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedCteJoin.java @@ -51,11 +51,11 @@ private SqmCorrelatedCteJoin( @Override public SqmCorrelatedCteJoin copy(SqmCopyContext context) { - final SqmCorrelatedCteJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedCteJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedCteJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedJoin.java index 31f4f204d265..730d2ba7331f 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedJoin.java @@ -55,11 +55,11 @@ private SqmCorrelatedDerivedJoin( @Override public SqmCorrelatedDerivedJoin copy(SqmCopyContext context) { - final SqmCorrelatedDerivedJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedDerivedJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedDerivedJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedRoot.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedRoot.java index 9a1e35a0b96f..d31a92765f97 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedRoot.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedRoot.java @@ -32,11 +32,11 @@ private SqmCorrelatedDerivedRoot(SqmRoot correlationParent) { @Override public SqmCorrelatedDerivedRoot copy(SqmCopyContext context) { - final SqmCorrelatedDerivedRoot existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedDerivedRoot path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedDerivedRoot<>( getCorrelationParent().copy( context ) ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedRootJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedRootJoin.java index 3e26123b3b11..a9507348376e 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedRootJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedDerivedRootJoin.java @@ -26,11 +26,11 @@ public SqmCorrelatedDerivedRootJoin( @Override public SqmCorrelatedDerivedRootJoin copy(SqmCopyContext context) { - final SqmCorrelatedDerivedRootJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedDerivedRootJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedDerivedRootJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedEntityJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedEntityJoin.java index 3cc0ae64d453..10741af724a6 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedEntityJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedEntityJoin.java @@ -7,7 +7,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.hibernate.metamodel.model.domain.EntityDomainType; import org.hibernate.query.hql.spi.SqmCreationProcessingState; -import org.hibernate.query.hql.spi.SqmPathRegistry; import org.hibernate.query.sqm.SemanticQueryWalker; import org.hibernate.query.sqm.tree.SqmCopyContext; import org.hibernate.query.sqm.tree.SqmJoinType; @@ -49,11 +48,11 @@ public SqmCorrelatedEntityJoin( @Override public SqmCorrelatedEntityJoin copy(SqmCopyContext context) { - final SqmCorrelatedEntityJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedEntityJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedEntityJoin<>( getReferencedPathSource(), @@ -105,7 +104,7 @@ public SqmCorrelatedEntityJoin createCorrelation() { @Override public SqmCorrelatedEntityJoin makeCopy(SqmCreationProcessingState creationProcessingState) { - final SqmPathRegistry pathRegistry = creationProcessingState.getPathRegistry(); + final var pathRegistry = creationProcessingState.getPathRegistry(); return new SqmCorrelatedEntityJoin<>( getReferencedPathSource(), getExplicitAlias(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedListJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedListJoin.java index fc9b039bcca7..6b5804e61690 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedListJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedListJoin.java @@ -50,11 +50,11 @@ private SqmCorrelatedListJoin( @Override public SqmCorrelatedListJoin copy(SqmCopyContext context) { - final SqmCorrelatedListJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedListJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedListJoin<>( getLhs().copy( context ), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedMapJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedMapJoin.java index 0bb8c3b42bb2..9d07a56777b4 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedMapJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedMapJoin.java @@ -50,11 +50,11 @@ private SqmCorrelatedMapJoin( @Override public SqmCorrelatedMapJoin copy(SqmCopyContext context) { - final SqmCorrelatedMapJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedMapJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedMapJoin<>( getLhs().copy( context ), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedPluralPartJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedPluralPartJoin.java index 496c55a9c44d..1d5b2ebeed43 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedPluralPartJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedPluralPartJoin.java @@ -33,11 +33,11 @@ public SqmCorrelatedPluralPartJoin(SqmPluralPartJoin correlationParent) { @Override public SqmCorrelatedPluralPartJoin copy(SqmCopyContext context) { - final SqmCorrelatedPluralPartJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedPluralPartJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedPluralPartJoin<>( correlationParent.copy( context ) ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedRoot.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedRoot.java index 0d0824267277..40969d7fd864 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedRoot.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedRoot.java @@ -38,11 +38,11 @@ protected SqmCorrelatedRoot(NavigablePath navigablePath, SqmPathSource refere @Override public SqmCorrelatedRoot copy(SqmCopyContext context) { - final SqmCorrelatedRoot existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedRoot path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedRoot<>( correlationParent.copy( context ) ) ); diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedRootJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedRootJoin.java index 0a77643f4ee5..314d58fdbf2c 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedRootJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedRootJoin.java @@ -28,11 +28,11 @@ public SqmCorrelatedRootJoin( @Override public SqmCorrelatedRootJoin copy(SqmCopyContext context) { - final SqmCorrelatedRootJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedRootJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedRootJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedSetJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedSetJoin.java index 21abbcec1ecc..999ca4e304b6 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedSetJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedSetJoin.java @@ -50,11 +50,11 @@ private SqmCorrelatedSetJoin( @Override public SqmCorrelatedSetJoin copy(SqmCopyContext context) { - final SqmCorrelatedSetJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedSetJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedSetJoin<>( getLhs().copy( context ), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedSingularJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedSingularJoin.java index 3db5f80c14eb..a83133c851d1 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedSingularJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCorrelatedSingularJoin.java @@ -50,11 +50,11 @@ private SqmCorrelatedSingularJoin( @Override public SqmCorrelatedSingularJoin copy(SqmCopyContext context) { - final SqmCorrelatedSingularJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCorrelatedSingularJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCorrelatedSingularJoin<>( getLhs().copy( context ), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCteRoot.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCteRoot.java index a1d5973902d9..850a56e27aed 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCteRoot.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmCteRoot.java @@ -54,11 +54,11 @@ protected SqmCteRoot( @Override public SqmCteRoot copy(SqmCopyContext context) { - final SqmCteRoot existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCteRoot path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCteRoot<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmDerivedRoot.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmDerivedRoot.java index 05ea4470d4be..ba28e6da5df5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmDerivedRoot.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmDerivedRoot.java @@ -55,11 +55,11 @@ protected SqmDerivedRoot( @Override public SqmDerivedRoot copy(SqmCopyContext context) { - final SqmDerivedRoot existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmDerivedRoot path = context.registerCopy( + final var path = context.registerCopy( this, new SqmDerivedRoot<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmElementAggregateFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmElementAggregateFunction.java index cb46ed519897..c099cd2079c6 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmElementAggregateFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmElementAggregateFunction.java @@ -13,7 +13,6 @@ import org.hibernate.query.hql.spi.SqmCreationState; import org.hibernate.query.sqm.SemanticQueryWalker; import org.hibernate.query.sqm.SqmBindableType; -import org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder; import org.hibernate.query.sqm.sql.SqmToSqlAstConverter; import org.hibernate.query.sqm.tree.SqmCopyContext; import org.hibernate.query.sqm.tree.SqmRenderContext; @@ -38,32 +37,28 @@ public SqmElementAggregateFunction(SqmPluralValuedSimplePath pluralDomainPath .getElementPathSource() ); this.functionName = functionName; - final SqmCriteriaNodeBuilder nodeBuilder = pluralDomainPath.nodeBuilder(); - switch ( functionName ) { - case "sum": - //noinspection unchecked - this.returnableType = (ReturnableType) nodeBuilder.getSumReturnTypeResolver() - .resolveFunctionReturnType( - null, - (SqmToSqlAstConverter) null, - List.of( pluralDomainPath ), - nodeBuilder.getTypeConfiguration() - ); - break; - case "avg": - //noinspection unchecked - this.returnableType = (ReturnableType) nodeBuilder.getAvgReturnTypeResolver() - .resolveFunctionReturnType( - null, - (SqmToSqlAstConverter) null, - List.of( pluralDomainPath ), - nodeBuilder.getTypeConfiguration() - ); - break; - default: - this.returnableType = null; - break; - } + final var nodeBuilder = pluralDomainPath.nodeBuilder(); + final var type = switch ( functionName ) { + case "sum" -> + nodeBuilder.getSumReturnTypeResolver() + .resolveFunctionReturnType( + null, + (SqmToSqlAstConverter) null, + List.of( pluralDomainPath ), + nodeBuilder.getTypeConfiguration() + ); + case "avg" -> + nodeBuilder.getAvgReturnTypeResolver() + .resolveFunctionReturnType( + null, + (SqmToSqlAstConverter) null, + List.of( pluralDomainPath ), + nodeBuilder.getTypeConfiguration() + ); + default -> null; + }; + //noinspection unchecked + returnableType = (ReturnableType) type; } @Override @@ -87,14 +82,14 @@ public SqmElementAggregateFunction(SqmPluralValuedSimplePath pluralDomainPath @Override public SqmElementAggregateFunction copy(SqmCopyContext context) { - final SqmElementAggregateFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmElementAggregateFunction path = context.registerCopy( + final var path = context.registerCopy( this, - new SqmElementAggregateFunction<>( + new SqmElementAggregateFunction( getPluralDomainPath().copy( context ), functionName ) @@ -112,7 +107,7 @@ public SqmPath resolvePathPart( String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEmbeddedValuedSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEmbeddedValuedSimplePath.java index c84032b4457f..8e6ca7368536 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEmbeddedValuedSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEmbeddedValuedSimplePath.java @@ -49,13 +49,13 @@ public SqmEmbeddedValuedSimplePath( @Override public SqmEmbeddedValuedSimplePath copy(SqmCopyContext context) { - final SqmEmbeddedValuedSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmPath lhsCopy = getLhs().copy( context ); - final SqmEmbeddedValuedSimplePath path = context.registerCopy( + final var path = context.registerCopy( this, new SqmEmbeddedValuedSimplePath<>( getNavigablePathCopy( lhsCopy ), @@ -86,7 +86,7 @@ public PersistenceType getPersistenceType() { @Override public SqmPath resolvePathPart(String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEntityValuedSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEntityValuedSimplePath.java index a3ba68ecf625..f2adc59d68a5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEntityValuedSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmEntityValuedSimplePath.java @@ -28,13 +28,13 @@ public SqmEntityValuedSimplePath( @Override public SqmEntityValuedSimplePath copy(SqmCopyContext context) { - final SqmEntityValuedSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmPath lhsCopy = getLhs().copy( context ); - final SqmEntityValuedSimplePath path = context.registerCopy( + final var path = context.registerCopy( this, new SqmEntityValuedSimplePath<>( getNavigablePathCopy( lhsCopy ), @@ -52,7 +52,7 @@ public SqmPath resolvePathPart( String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFkExpression.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFkExpression.java index 73f18ff4d2bd..3d3085f48431 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFkExpression.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFkExpression.java @@ -6,7 +6,6 @@ import org.checkerframework.checker.nullness.qual.NonNull; import org.hibernate.metamodel.mapping.ForeignKeyDescriptor; -import org.hibernate.metamodel.model.domain.DomainType; import org.hibernate.metamodel.model.domain.EntityDomainType; import org.hibernate.metamodel.model.domain.IdentifiableDomainType; import org.hibernate.query.hql.spi.SqmCreationState; @@ -37,19 +36,22 @@ private SqmFkExpression( SqmPath toOnePath) { super( navigablePath, - (SqmPathSource) castNonNull( pathDomainType( toOnePath ).getIdentifierDescriptor() ), + (SqmPathSource) + castNonNull( pathDomainType( toOnePath ) + .getIdentifierDescriptor() ), toOnePath, toOnePath.nodeBuilder() ); } private static IdentifiableDomainType pathDomainType(SqmPath toOnePath) { - final DomainType domainType = toOnePath.getReferencedPathSource().getPathType(); - if ( domainType instanceof IdentifiableDomainType identifiableDomainType ) { + if ( toOnePath.getReferencedPathSource().getPathType() + instanceof IdentifiableDomainType identifiableDomainType ) { return identifiableDomainType; } else { - throw new IllegalArgumentException( "Invalid path provided to 'fk()' function: " + toOnePath.getNavigablePath() ); + throw new IllegalArgumentException( "Invalid path provided to 'fk()' function: " + + toOnePath.getNavigablePath() ); } } @@ -72,11 +74,11 @@ public void appendHqlString(StringBuilder hql, SqmRenderContext context) { @Override public SqmFkExpression copy(SqmCopyContext context) { - final SqmFkExpression existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmEntityValuedSimplePath lhsCopy = (SqmEntityValuedSimplePath) getLhs().copy( context ); + final var lhsCopy = (SqmEntityValuedSimplePath) getLhs().copy( context ); return context.registerCopy( this, new SqmFkExpression<>( getNavigablePathCopy( lhsCopy ), lhsCopy ) @@ -95,7 +97,7 @@ public SqmTreatedPath treatAs(EntityDomainType treatTarget @Override public SqmPath resolvePathPart(String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFunctionPath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFunctionPath.java index 3ed186cdae57..5f5035dc36b6 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFunctionPath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFunctionPath.java @@ -10,8 +10,6 @@ import org.hibernate.metamodel.model.domain.internal.BasicSqmPathSource; import org.hibernate.metamodel.model.domain.internal.EmbeddedSqmPathSource; import org.hibernate.query.hql.spi.SqmCreationState; -import org.hibernate.query.hql.spi.SqmPathRegistry; -import org.hibernate.query.spi.QueryEngine; import org.hibernate.query.sqm.SemanticQueryWalker; import org.hibernate.query.sqm.SqmBindableType; import org.hibernate.query.sqm.SqmPathSource; @@ -21,13 +19,10 @@ import org.hibernate.query.sqm.tree.SqmRenderContext; import org.hibernate.query.sqm.tree.expression.SqmExpression; import org.hibernate.query.sqm.tree.expression.SqmFunction; -import org.hibernate.query.sqm.tree.from.SqmFrom; import org.hibernate.spi.NavigablePath; import org.hibernate.type.BasicPluralType; -import org.hibernate.type.BasicType; import jakarta.persistence.metamodel.Bindable; -import jakarta.persistence.metamodel.ManagedType; import jakarta.persistence.metamodel.Type; @@ -52,17 +47,18 @@ private SqmFunctionPath(NavigablePath navigablePath, SqmFunction function) { private static SqmPathSource determinePathSource(NavigablePath navigablePath, SqmFunction function) { //noinspection unchecked - final SqmBindableType nodeType = (SqmBindableType) function.getNodeType(); + final var nodeType = (SqmBindableType) function.getNodeType(); if ( nodeType == null ) { throw new IllegalArgumentException( "Null return type for function: " + function.getFunctionName() ); } - final Class bindableJavaType = nodeType.getJavaType(); - final ManagedType managedType = function.nodeBuilder() - .getJpaMetamodel() - .findManagedType( bindableJavaType ); + final var bindableJavaType = nodeType.getJavaType(); + final var managedType = + function.nodeBuilder().getJpaMetamodel() + .findManagedType( bindableJavaType ); if ( managedType == null ) { - final BasicType basicType = function.nodeBuilder().getTypeConfiguration() - .getBasicTypeForJavaType( bindableJavaType ); + final var basicType = + function.nodeBuilder().getTypeConfiguration() + .getBasicTypeForJavaType( bindableJavaType ); if ( basicType == null ) { throw new IllegalArgumentException( "Couldn't determine basic type for java type: " + bindableJavaType.getName() ); } @@ -95,14 +91,15 @@ public SqmFunction getFunction() { @Override public SqmFunctionPath copy(SqmCopyContext context) { - final SqmFunctionPath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmFunctionPath path = context.registerCopy( + final var path = context.registerCopy( this, - new SqmFunctionPath<>( getNavigablePath(), (SqmFunction) function.copy( context ) ) + new SqmFunctionPath( getNavigablePath(), + (SqmFunction) function.copy( context ) ) ); copyTo( path, context ); return path; @@ -113,7 +110,7 @@ public SqmPath resolvePathPart( String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } @@ -123,20 +120,18 @@ public SqmPath resolveIndexedAccess( SqmExpression selector, boolean isTerminal, SqmCreationState creationState) { - final SqmPathRegistry pathRegistry = creationState.getCurrentProcessingState().getPathRegistry(); - final String alias = selector.toHqlString(); - final NavigablePath navigablePath = getNavigablePath().append( - CollectionPart.Nature.ELEMENT.getName(), - alias - ); - final SqmFrom indexedPath = pathRegistry.findFromByPath( navigablePath ); + final var pathRegistry = creationState.getCurrentProcessingState().getPathRegistry(); + final var navigablePath = + getNavigablePath().append( CollectionPart.Nature.ELEMENT.getName(), + selector.toHqlString() ); + final var indexedPath = pathRegistry.findFromByPath( navigablePath ); if ( indexedPath != null ) { return indexedPath; } if ( !( getReferencedPathSource().getPathType() instanceof BasicPluralType ) ) { throw new UnsupportedOperationException( "Index access is only supported for basic plural types." ); } - final QueryEngine queryEngine = creationState.getCreationContext().getQueryEngine(); + final var queryEngine = creationState.getCreationContext().getQueryEngine(); final SelfRenderingSqmFunction result = queryEngine.getSqmFunctionRegistry() .getFunctionDescriptor( "array_get" ) .generateSqmExpression( @@ -144,7 +139,7 @@ public SqmPath resolveIndexedAccess( null, queryEngine ); - final SqmFunctionPath path = new SqmFunctionPath<>( result ); + final SqmFunctionPath path = new SqmFunctionPath<>( result ); pathRegistry.register( path ); return path; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFunctionRoot.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFunctionRoot.java index a0464f45fdde..32535c433619 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFunctionRoot.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmFunctionRoot.java @@ -53,11 +53,11 @@ protected SqmFunctionRoot( @Override public SqmFunctionRoot copy(SqmCopyContext context) { - final SqmFunctionRoot existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmFunctionRoot path = context.registerCopy( + final var path = context.registerCopy( this, new SqmFunctionRoot<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexAggregateFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexAggregateFunction.java index 268f7aa2e580..6baa4c16208b 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexAggregateFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexAggregateFunction.java @@ -14,7 +14,6 @@ import org.hibernate.query.sqm.SemanticQueryWalker; import org.hibernate.query.sqm.SqmBindableType; import org.hibernate.query.sqm.SqmPathSource; -import org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder; import org.hibernate.query.sqm.sql.SqmToSqlAstConverter; import org.hibernate.query.sqm.tree.SqmCopyContext; import org.hibernate.query.sqm.tree.SqmRenderContext; @@ -42,32 +41,28 @@ public SqmIndexAggregateFunction(SqmPluralValuedSimplePath pluralDomainPath, .getIndexPathSource() ); this.functionName = functionName; - final SqmCriteriaNodeBuilder nodeBuilder = pluralDomainPath.nodeBuilder(); - switch ( functionName ) { - case "sum": - //noinspection unchecked - this.returnableType = (ReturnableType) nodeBuilder.getSumReturnTypeResolver() - .resolveFunctionReturnType( - null, - (SqmToSqlAstConverter) null, - List.of( pluralDomainPath.get( CollectionPart.Nature.INDEX.getName() ) ), - nodeBuilder.getTypeConfiguration() - ); - break; - case "avg": - //noinspection unchecked - this.returnableType = (ReturnableType) nodeBuilder.getAvgReturnTypeResolver() - .resolveFunctionReturnType( - null, - (SqmToSqlAstConverter) null, - List.of( pluralDomainPath.get( CollectionPart.Nature.INDEX.getName() ) ), - nodeBuilder.getTypeConfiguration() - ); - break; - default: - this.returnableType = null; - break; - } + final var nodeBuilder = pluralDomainPath.nodeBuilder(); + final var type = switch ( functionName ) { + case "sum" -> + nodeBuilder.getSumReturnTypeResolver() + .resolveFunctionReturnType( + null, + (SqmToSqlAstConverter) null, + List.of( pluralDomainPath.get( CollectionPart.Nature.INDEX.getName() ) ), + nodeBuilder.getTypeConfiguration() + ); + case "avg" -> + nodeBuilder.getAvgReturnTypeResolver() + .resolveFunctionReturnType( + null, + (SqmToSqlAstConverter) null, + List.of( pluralDomainPath.get( CollectionPart.Nature.INDEX.getName() ) ), + nodeBuilder.getTypeConfiguration() + ); + default -> null; + }; + //noinspection unchecked + returnableType = (ReturnableType) type; } @Override @@ -91,14 +86,14 @@ public SqmIndexAggregateFunction(SqmPluralValuedSimplePath pluralDomainPath, @Override public SqmIndexAggregateFunction copy(SqmCopyContext context) { - final SqmIndexAggregateFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmIndexAggregateFunction path = context.registerCopy( + final var path = context.registerCopy( this, - new SqmIndexAggregateFunction<>( + new SqmIndexAggregateFunction( getPluralDomainPath().copy( context ), functionName ) @@ -116,7 +111,7 @@ public SqmPath resolvePathPart( String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexedCollectionAccessPath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexedCollectionAccessPath.java index b0191e880af8..8519d243c25d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexedCollectionAccessPath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmIndexedCollectionAccessPath.java @@ -46,13 +46,13 @@ public SqmIndexedCollectionAccessPath( @Override public SqmIndexedCollectionAccessPath copy(SqmCopyContext context) { - final SqmIndexedCollectionAccessPath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmAttributeJoin lhsCopy = getLhs().copy( context ); - final SqmIndexedCollectionAccessPath path = context.registerCopy( + final var path = context.registerCopy( this, new SqmIndexedCollectionAccessPath( getNavigablePathCopy( lhsCopy ), @@ -78,7 +78,7 @@ public SqmPath resolvePathPart( String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmListJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmListJoin.java index 8ec14102919a..0268f27bc865 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmListJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmListJoin.java @@ -55,12 +55,12 @@ protected SqmListJoin( @Override public SqmListJoin copy(SqmCopyContext context) { - final SqmListJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmFrom lhsCopy = getLhs().copy( context ); - final SqmListJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmListJoin<>( lhsCopy, diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapEntryReference.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapEntryReference.java index b246031821ea..99ec573cc3fe 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapEntryReference.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapEntryReference.java @@ -56,7 +56,7 @@ public SqmMapEntryReference( @Override public SqmMapEntryReference copy(SqmCopyContext context) { - final SqmMapEntryReference existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapJoin.java index 5491d2b8ba70..434f752961f1 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmMapJoin.java @@ -55,12 +55,12 @@ protected SqmMapJoin( @Override public SqmMapJoin copy(SqmCopyContext context) { - final SqmMapJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmFrom lhsCopy = getLhs().copy( context ); - final SqmMapJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmMapJoin<>( lhsCopy, diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPath.java index 40563779e159..7ea720558d49 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPath.java @@ -164,7 +164,7 @@ default SqmPath resolveIndexedAccess( * * @see SqmPathSource#findSubPathSource(String, boolean) */ - default SqmPath get(String attributeName, boolean includeSubtypes) { + default SqmPath get(String attributeName, boolean includeSubtypes) { return get( attributeName ); } 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 2e6d88eae773..029d9ae48a5a 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,12 +67,12 @@ public boolean isImplicitlySelectable() { @Override public SqmPluralPartJoin copy(SqmCopyContext context) { - final SqmPluralPartJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmFrom lhsCopy = getLhs().copy( context ); - final SqmPluralPartJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmPluralPartJoin<>( lhsCopy, diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralValuedSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralValuedSimplePath.java index 50bdcdffd36b..4aec559e33dc 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralValuedSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmPluralValuedSimplePath.java @@ -14,7 +14,6 @@ import org.hibernate.query.NotIndexedCollectionException; import org.hibernate.query.PathException; import org.hibernate.query.hql.spi.SqmCreationState; -import org.hibernate.query.hql.spi.SqmPathRegistry; import org.hibernate.query.sqm.NodeBuilder; import org.hibernate.query.sqm.SemanticQueryWalker; import org.hibernate.query.sqm.SqmPathSource; @@ -58,13 +57,13 @@ public SqmPluralValuedSimplePath( @Override public SqmPluralValuedSimplePath copy(SqmCopyContext context) { - final SqmPluralValuedSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmPath lhsCopy = getLhs().copy( context ); - final SqmPluralValuedSimplePath path = context.registerCopy( + final var path = context.registerCopy( this, new SqmPluralValuedSimplePath<>( getNavigablePathCopy( lhsCopy ), @@ -104,7 +103,7 @@ public SqmPath resolvePathPart( + "' refers to a collection and so element attribute '" + name + "' may not be referenced directly (use element() function)" ); } - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } @@ -114,7 +113,7 @@ public SqmPath resolveIndexedAccess( SqmExpression selector, boolean isTerminal, SqmCreationState creationState) { - final SqmPathRegistry pathRegistry = creationState.getCurrentProcessingState().getPathRegistry(); + final var pathRegistry = creationState.getCurrentProcessingState().getPathRegistry(); final String alias = selector.toHqlString(); final NavigablePath navigablePath = getParentNavigablePath() diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmSetJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmSetJoin.java index df28f49f1af1..81007629b943 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmSetJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmSetJoin.java @@ -53,12 +53,12 @@ protected SqmSetJoin( @Override public SqmSetJoin copy(SqmCopyContext context) { - final SqmSetJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmFrom lhsCopy = getLhs().copy( context ); - final SqmSetJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmSetJoin<>( lhsCopy, diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmSingularJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmSingularJoin.java index a5300366ad8e..909a55c307a5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmSingularJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmSingularJoin.java @@ -65,12 +65,12 @@ protected SqmSingularJoin( @Override public SqmSingularJoin copy(SqmCopyContext context) { - final SqmSingularJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } final SqmFrom lhsCopy = getLhs().copy( context ); - final SqmSingularJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmSingularJoin<>( lhsCopy, diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedBagJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedBagJoin.java index e91085a45730..82219a2a04b5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedBagJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedBagJoin.java @@ -78,11 +78,11 @@ private SqmTreatedBagJoin( @Override public SqmTreatedBagJoin copy(SqmCopyContext context) { - final SqmTreatedBagJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedBagJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedBagJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEmbeddedValuedSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEmbeddedValuedSimplePath.java index a69680b47fae..224fce35d086 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEmbeddedValuedSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEmbeddedValuedSimplePath.java @@ -55,11 +55,11 @@ private SqmTreatedEmbeddedValuedSimplePath( @Override public SqmTreatedEmbeddedValuedSimplePath copy(SqmCopyContext context) { - final SqmTreatedEmbeddedValuedSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedEmbeddedValuedSimplePath path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedEmbeddedValuedSimplePath<>( getNavigablePath(), @@ -104,7 +104,7 @@ public X accept(SemanticQueryWalker walker) { @Override public SqmPath resolvePathPart(String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEntityJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEntityJoin.java index 202786f6d1ba..d2b5413df139 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEntityJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEntityJoin.java @@ -60,11 +60,11 @@ private SqmTreatedEntityJoin( @Override public SqmTreatedEntityJoin copy(SqmCopyContext context) { - final SqmTreatedEntityJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedEntityJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedEntityJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEntityValuedSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEntityValuedSimplePath.java index 7081f2d5cef7..398ae2c8cf3c 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEntityValuedSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedEntityValuedSimplePath.java @@ -77,12 +77,12 @@ private SqmTreatedEntityValuedSimplePath( @Override public SqmTreatedEntityValuedSimplePath copy(SqmCopyContext context) { - final SqmTreatedEntityValuedSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedEntityValuedSimplePath path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedEntityValuedSimplePath<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedListJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedListJoin.java index eea6d196161f..9f72b682d51b 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedListJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedListJoin.java @@ -78,11 +78,11 @@ private SqmTreatedListJoin( @Override public SqmTreatedListJoin copy(SqmCopyContext context) { - final SqmTreatedListJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedListJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedListJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedMapJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedMapJoin.java index 631a27f08278..930bb707e04d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedMapJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedMapJoin.java @@ -77,11 +77,11 @@ private SqmTreatedMapJoin( @Override public SqmTreatedMapJoin copy(SqmCopyContext context) { - final SqmTreatedMapJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedMapJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedMapJoin<>( getNavigablePath(), 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 3d53621d86a3..29b3a19b7e90 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 @@ -18,12 +18,12 @@ */ @SuppressWarnings("rawtypes") public class SqmTreatedPluralPartJoin extends SqmPluralPartJoin implements SqmTreatedJoin { - private final SqmPluralPartJoin wrappedPath; - private final SqmEntityDomainType treatTarget; + private final SqmPluralPartJoin wrappedPath; + private final SqmEntityDomainType treatTarget; public SqmTreatedPluralPartJoin( - SqmPluralPartJoin wrappedPath, - SqmEntityDomainType treatTarget, + SqmPluralPartJoin wrappedPath, + SqmEntityDomainType treatTarget, @Nullable String alias) { //noinspection unchecked super( @@ -41,8 +41,8 @@ public SqmTreatedPluralPartJoin( private SqmTreatedPluralPartJoin( NavigablePath navigablePath, - SqmPluralPartJoin wrappedPath, - SqmEntityDomainType treatTarget, + SqmPluralPartJoin wrappedPath, + SqmEntityDomainType treatTarget, @Nullable String alias) { //noinspection unchecked super( @@ -59,11 +59,11 @@ private SqmTreatedPluralPartJoin( @Override public SqmTreatedPluralPartJoin copy(SqmCopyContext context) { - final SqmTreatedPluralPartJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedPluralPartJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedPluralPartJoin( getNavigablePath(), @@ -77,22 +77,22 @@ public SqmTreatedPluralPartJoin copy(SqmCopyContext context) { } @Override - public SqmPluralPartJoin getWrappedPath() { + public SqmPluralPartJoin getWrappedPath() { return wrappedPath; } @Override - public EntityDomainType getTreatTarget() { + public EntityDomainType getTreatTarget() { return treatTarget; } @Override - public @NonNull SqmBindableType getNodeType() { + public @NonNull SqmBindableType getNodeType() { return treatTarget; } @Override - public SqmPathSource getReferencedPathSource() { + public SqmPathSource getReferencedPathSource() { return treatTarget; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedRoot.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedRoot.java index 1279851a7657..bee6babd11b5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedRoot.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedRoot.java @@ -116,7 +116,7 @@ public SqmPath resolvePathPart( String name, boolean isTerminal, SqmCreationState creationState) { - final SqmPath sqmPath = get( name, true ); + final var sqmPath = get( name, true ); creationState.getProcessingStateStack().getCurrent().getPathRegistry().register( sqmPath ); return sqmPath; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSetJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSetJoin.java index 05c249fed839..d90c44e0e8eb 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSetJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSetJoin.java @@ -78,11 +78,11 @@ private SqmTreatedSetJoin( @Override public SqmTreatedSetJoin copy(SqmCopyContext context) { - final SqmTreatedSetJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedSetJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedSetJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSimplePath.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSimplePath.java index 63193e925e8d..505373053ddd 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSimplePath.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSimplePath.java @@ -78,12 +78,12 @@ private SqmTreatedSimplePath( @Override public SqmTreatedSimplePath copy(SqmCopyContext context) { - final SqmTreatedSimplePath existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedSimplePath path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedSimplePath<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSingularJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSingularJoin.java index df52fec73f8c..53fb588cdc98 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSingularJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmTreatedSingularJoin.java @@ -80,11 +80,11 @@ private SqmTreatedSingularJoin( @Override public SqmTreatedSingularJoin copy(SqmCopyContext context) { - final SqmTreatedSingularJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmTreatedSingularJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmTreatedSingularJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmAny.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmAny.java index e1270c827e78..8a0b7ac7d523 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmAny.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmAny.java @@ -38,7 +38,7 @@ public SqmAny(SqmSubQuery subquery, NodeBuilder criteriaBuilder) { @Override public SqmAny copy(SqmCopyContext context) { - final SqmAny existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmAnyDiscriminatorValue.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmAnyDiscriminatorValue.java index b9675b66f913..ef8b45ffb9cb 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmAnyDiscriminatorValue.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmAnyDiscriminatorValue.java @@ -43,7 +43,7 @@ public BasicType getDomainType(){ @Override public SqmAnyDiscriminatorValue copy(SqmCopyContext context) { - final SqmAnyDiscriminatorValue existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmBinaryArithmetic.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmBinaryArithmetic.java index 5e77fd159523..c98fca2883fc 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmBinaryArithmetic.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmBinaryArithmetic.java @@ -73,7 +73,7 @@ public SqmBinaryArithmetic( @Override public SqmBinaryArithmetic copy(SqmCopyContext context) { - final SqmBinaryArithmetic existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSearched.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSearched.java index 20461b1fb63e..1044d8447914 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSearched.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSearched.java @@ -49,7 +49,7 @@ private SqmCaseSearched(@Nullable SqmBindableType inherentType, int estimated @Override public SqmCaseSearched copy(SqmCopyContext context) { - final SqmCaseSearched existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSimple.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSimple.java index 593bb0f69d58..a8aceefad745 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSimple.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCaseSimple.java @@ -55,7 +55,7 @@ private SqmCaseSimple( @Override public SqmCaseSimple copy(SqmCopyContext context) { - final SqmCaseSimple existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCoalesce.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCoalesce.java index 979ba811c726..431676cee9b7 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCoalesce.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmCoalesce.java @@ -49,7 +49,7 @@ public SqmCoalesce(@Nullable SqmBindableType type, int numberOfArguments, Nod @Override public SqmCoalesce copy(SqmCopyContext context) { - final SqmCoalesce existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmDistinct.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmDistinct.java index ebd0ccc5f160..89c3af5cab83 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmDistinct.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmDistinct.java @@ -28,7 +28,7 @@ public SqmDistinct(SqmExpression expression, NodeBuilder builder) { @Override public SqmDistinct copy(SqmCopyContext context) { - final SqmDistinct existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmEnumLiteral.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmEnumLiteral.java index 453b5a92b6e2..52fe2112efbc 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmEnumLiteral.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmEnumLiteral.java @@ -47,7 +47,7 @@ public SqmEnumLiteral( @Override public SqmEnumLiteral copy(SqmCopyContext context) { - final SqmEnumLiteral existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmEvery.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmEvery.java index ca9096abb773..df6449272146 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmEvery.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmEvery.java @@ -37,7 +37,7 @@ public SqmEvery(SqmSubQuery subquery, NodeBuilder criteriaBuilder) { @Override public SqmEvery copy(SqmCopyContext context) { - final SqmEvery existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } 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 f871671f8878..e197e1046a81 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 @@ -78,7 +78,7 @@ public PersistenceType getPersistenceType() { @Override public SqmFieldLiteral copy(SqmCopyContext context) { - final SqmFieldLiteral existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJpaCriteriaParameterWrapper.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJpaCriteriaParameterWrapper.java index 2e9a35ef9801..35851e900791 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJpaCriteriaParameterWrapper.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJpaCriteriaParameterWrapper.java @@ -46,7 +46,7 @@ public SqmJpaCriteriaParameterWrapper( @Override public SqmJpaCriteriaParameterWrapper copy(SqmCopyContext context) { - final SqmJpaCriteriaParameterWrapper existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJsonTableFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJsonTableFunction.java index 5df34f9b30aa..db519eaf445f 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJsonTableFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJsonTableFunction.java @@ -138,7 +138,7 @@ public JpaJsonTableFunction passing(String parameterName, Expression expressi @Override public SqmJsonTableFunction copy(SqmCopyContext context) { - final SqmJsonTableFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJsonValueExpression.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJsonValueExpression.java index 5123d55348e1..48e778703c13 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJsonValueExpression.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmJsonValueExpression.java @@ -99,7 +99,7 @@ private SqmJsonValueExpression( } public SqmJsonValueExpression copy(SqmCopyContext context) { - final SqmJsonValueExpression existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteral.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteral.java index ede9c60a6245..a271286ce9b2 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteral.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteral.java @@ -53,7 +53,7 @@ protected SqmLiteral(@Nullable SqmBindableType inherentType, NodeBuilder node @Override public SqmLiteral copy(SqmCopyContext context) { - final SqmLiteral existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEmbeddableType.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEmbeddableType.java index 0fc44ed3fed3..02f5dbe2be02 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEmbeddableType.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEmbeddableType.java @@ -45,7 +45,7 @@ public EmbeddableDomainType getEmbeddableDomainType() { @Override public SqmLiteralEmbeddableType copy(SqmCopyContext context) { - final SqmLiteralEmbeddableType existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEntityType.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEntityType.java index 4792516c1c95..75be501c5a3d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEntityType.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralEntityType.java @@ -42,7 +42,7 @@ public SqmLiteralEntityType(SqmEntityDomainType entityType, NodeBuilder nodeB @Override public SqmLiteralEntityType copy(SqmCopyContext context) { - final SqmLiteralEntityType existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralNull.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralNull.java index 8353603cfc4e..d4f05b1b9f3b 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralNull.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmLiteralNull.java @@ -26,7 +26,7 @@ public SqmLiteralNull(@Nullable SqmBindableType expressibleType, NodeBuilder @Override public SqmLiteralNull copy(SqmCopyContext context) { - final SqmLiteralNull existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmModifiedSubQueryExpression.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmModifiedSubQueryExpression.java index 5cefb33c02e9..b385d1299a22 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmModifiedSubQueryExpression.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmModifiedSubQueryExpression.java @@ -53,7 +53,7 @@ public SqmModifiedSubQueryExpression( @Override public SqmModifiedSubQueryExpression copy(SqmCopyContext context) { - final SqmModifiedSubQueryExpression existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmNamedExpression.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmNamedExpression.java index 578e108979e9..d2cf343ace33 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmNamedExpression.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmNamedExpression.java @@ -32,7 +32,7 @@ public SqmNamedExpression(SqmExpression expression, String name) { @Override public SqmNamedExpression copy(SqmCopyContext context) { - final SqmNamedExpression existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmNamedParameter.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmNamedParameter.java index 3b847e1df9d3..e3b4064d1885 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmNamedParameter.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmNamedParameter.java @@ -36,7 +36,7 @@ public SqmNamedParameter( @Override public SqmNamedParameter copy(SqmCopyContext context) { - final SqmNamedParameter existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmOver.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmOver.java index d46895a9bd0c..b2e746a32acd 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmOver.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmOver.java @@ -63,7 +63,7 @@ public SqmOver( @Override public SqmOver copy(SqmCopyContext context) { - final SqmOver existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmOverflow.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmOverflow.java index 94a29334b9b9..8b50156714a5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmOverflow.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmOverflow.java @@ -30,7 +30,7 @@ public SqmOverflow(SqmExpression separatorExpression, @Nullable SqmExpression @Override public SqmOverflow copy(SqmCopyContext context) { - final SqmOverflow existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameterizedEntityType.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameterizedEntityType.java index 915a506b3cb5..2fe415aeaedf 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameterizedEntityType.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmParameterizedEntityType.java @@ -32,7 +32,7 @@ public SqmParameterizedEntityType(SqmParameter parameterExpression, NodeBuild @Override public SqmParameterizedEntityType copy(SqmCopyContext context) { - final SqmParameterizedEntityType existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmPositionalParameter.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmPositionalParameter.java index cea1a470b3b3..24a9096ecea9 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmPositionalParameter.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmPositionalParameter.java @@ -38,7 +38,7 @@ public SqmPositionalParameter( @Override public SqmPositionalParameter copy(SqmCopyContext context) { - final SqmPositionalParameter existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSelfRenderingExpression.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSelfRenderingExpression.java index 3ba9155f13fa..387063aeb4d4 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSelfRenderingExpression.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSelfRenderingExpression.java @@ -30,7 +30,7 @@ public SqmSelfRenderingExpression( @Override public SqmSelfRenderingExpression copy(SqmCopyContext context) { - final SqmSelfRenderingExpression existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSummarization.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSummarization.java index ce744035a9a7..eedb11bfe222 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSummarization.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmSummarization.java @@ -31,7 +31,7 @@ public SqmSummarization(Kind kind, List> groupings, NodeBuilder @Override public SqmSummarization copy(SqmCopyContext context) { - final SqmSummarization existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmToDuration.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmToDuration.java index f0917b6126e0..ea6ad1aef28b 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmToDuration.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmToDuration.java @@ -35,7 +35,7 @@ public SqmToDuration( @Override public SqmToDuration copy(SqmCopyContext context) { - final SqmToDuration existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmTuple.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmTuple.java index dc3d93543df0..4a71852f3151 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmTuple.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmTuple.java @@ -61,7 +61,7 @@ public SqmTuple(List> groupedExpressions, @Nullable SqmBindable @Override public SqmTuple copy(SqmCopyContext context) { - final SqmTuple existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmUnaryOperation.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmUnaryOperation.java index 211fd039c889..7a73098017e8 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmUnaryOperation.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmUnaryOperation.java @@ -49,7 +49,7 @@ public SqmUnaryOperation( @Override public SqmUnaryOperation copy(SqmCopyContext context) { - final SqmUnaryOperation existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmXmlTableFunction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmXmlTableFunction.java index ba8de20e513f..6e17d367b172 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmXmlTableFunction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/expression/SqmXmlTableFunction.java @@ -97,7 +97,7 @@ private static List> createArgumentsList(SqmExpression x @Override public SqmXmlTableFunction copy(SqmCopyContext context) { - final SqmXmlTableFunction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCrossJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCrossJoin.java index 97a8ef98d811..3b79ff44bf03 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCrossJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCrossJoin.java @@ -9,7 +9,6 @@ import org.hibernate.metamodel.model.domain.PersistentAttribute; import org.hibernate.query.criteria.JpaCrossJoin; import org.hibernate.query.hql.spi.SqmCreationProcessingState; -import org.hibernate.query.hql.spi.SqmPathRegistry; import org.hibernate.query.sqm.SemanticQueryWalker; import org.hibernate.query.sqm.tree.SqmCopyContext; import org.hibernate.query.sqm.tree.SqmJoinType; @@ -93,11 +92,11 @@ public SqmJoinType getSqmJoinType() { @Override public SqmCrossJoin copy(SqmCopyContext context) { - final SqmCrossJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmCrossJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCrossJoin<>( getNavigablePath(), @@ -145,7 +144,7 @@ public SqmCorrelatedCrossJoin createCorrelation() { } public SqmCrossJoin makeCopy(SqmCreationProcessingState creationProcessingState) { - final SqmPathRegistry pathRegistry = creationProcessingState.getPathRegistry(); + final var pathRegistry = creationProcessingState.getPathRegistry(); return new SqmCrossJoin<>( getReferencedPathSource(), getExplicitAlias(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCteJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCteJoin.java index ffa77988f79e..8e8d50a1b62d 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCteJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmCteJoin.java @@ -74,12 +74,12 @@ public boolean isImplicitlySelectable() { @Override public SqmCteJoin copy(SqmCopyContext context) { - final SqmCteJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } //noinspection unchecked - final SqmCteJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmCteJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmDerivedJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmDerivedJoin.java index 35d4efe519cd..7f81dcce5508 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmDerivedJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmDerivedJoin.java @@ -97,12 +97,12 @@ public boolean isImplicitlySelectable() { @Override public SqmDerivedJoin copy(SqmCopyContext context) { - final SqmDerivedJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } //noinspection unchecked - final SqmDerivedJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmDerivedJoin<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmEntityJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmEntityJoin.java index e677689700bf..71fa83c1a766 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmEntityJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmEntityJoin.java @@ -11,7 +11,6 @@ import org.hibernate.query.criteria.JpaExpression; import org.hibernate.query.criteria.JpaPredicate; import org.hibernate.query.hql.spi.SqmCreationProcessingState; -import org.hibernate.query.hql.spi.SqmPathRegistry; import org.hibernate.query.sqm.SemanticQueryWalker; import org.hibernate.query.sqm.spi.SqmCreationHelper; import org.hibernate.query.sqm.tree.SqmCopyContext; @@ -76,11 +75,11 @@ public boolean isImplicitlySelectable() { @Override public SqmEntityJoin copy(SqmCopyContext context) { - final SqmEntityJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmEntityJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmEntityJoin<>( getNavigablePath(), @@ -210,7 +209,7 @@ public SqmCorrelatedEntityJoin createCorrelation() { } public SqmEntityJoin makeCopy(SqmCreationProcessingState creationProcessingState) { - final SqmPathRegistry pathRegistry = creationProcessingState.getPathRegistry(); + final var pathRegistry = creationProcessingState.getPathRegistry(); return new SqmEntityJoin<>( getReferencedPathSource(), getExplicitAlias(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmFunctionJoin.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmFunctionJoin.java index 660d80a6184e..e4f05e647b3f 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmFunctionJoin.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/from/SqmFunctionJoin.java @@ -97,12 +97,12 @@ public boolean isImplicitlySelectable() { @Override public SqmFunctionJoin copy(SqmCopyContext context) { - final SqmFunctionJoin existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } //noinspection unchecked - final SqmFunctionJoin path = context.registerCopy( + final var path = context.registerCopy( this, new SqmFunctionJoin<>( getNavigablePath(), 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 3b396a94e1a9..7050dd7cbfd4 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 @@ -73,11 +73,11 @@ protected SqmRoot( @Override public SqmRoot copy(SqmCopyContext context) { - final SqmRoot existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } - final SqmRoot path = context.registerCopy( + final var path = context.registerCopy( this, new SqmRoot<>( getNavigablePath(), diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmConflictClause.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmConflictClause.java index be4e281908e8..fc68a466ecd6 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmConflictClause.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmConflictClause.java @@ -148,7 +148,7 @@ public NodeBuilder nodeBuilder() { @Override public SqmConflictClause copy(SqmCopyContext context) { - final SqmConflictClause existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmConflictUpdateAction.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmConflictUpdateAction.java index 060eef3d369d..da5ecf4b0076 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmConflictUpdateAction.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmConflictUpdateAction.java @@ -136,7 +136,7 @@ public NodeBuilder nodeBuilder() { @Override public SqmConflictUpdateAction copy(SqmCopyContext context) { - final SqmConflictUpdateAction existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmInsertSelectStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmInsertSelectStatement.java index 97177adfae92..e2c8cbbb7ed1 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmInsertSelectStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmInsertSelectStatement.java @@ -75,7 +75,7 @@ private SqmInsertSelectStatement( @Override public SqmInsertSelectStatement copy(SqmCopyContext context) { - final SqmInsertSelectStatement existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmInsertValuesStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmInsertValuesStatement.java index 8f9198e689d0..4acd969d8c88 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmInsertValuesStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/insert/SqmInsertValuesStatement.java @@ -74,7 +74,7 @@ private SqmInsertValuesStatement( @Override public SqmInsertValuesStatement copy(SqmCopyContext context) { - final SqmInsertValuesStatement existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInListPredicate.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInListPredicate.java index be145463d679..65123e6ee5e5 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInListPredicate.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInListPredicate.java @@ -67,7 +67,7 @@ public SqmInListPredicate( @Override public SqmInListPredicate copy(SqmCopyContext context) { - final SqmInListPredicate existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInSubQueryPredicate.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInSubQueryPredicate.java index 3cb9064939f4..ca73b4928d5a 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInSubQueryPredicate.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/predicate/SqmInSubQueryPredicate.java @@ -57,7 +57,7 @@ public SqmInSubQueryPredicate( @Override public SqmInSubQueryPredicate copy(SqmCopyContext context) { - final SqmInSubQueryPredicate existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmDynamicInstantiation.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmDynamicInstantiation.java index 12cf9b69e5ce..13b1675ae760 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmDynamicInstantiation.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmDynamicInstantiation.java @@ -194,7 +194,7 @@ public boolean isFullyAliased() { @Override public SqmDynamicInstantiation copy(SqmCopyContext context) { - final SqmDynamicInstantiation existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmJpaCompoundSelection.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmJpaCompoundSelection.java index e4d6fedc05f7..548a55431c5c 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmJpaCompoundSelection.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmJpaCompoundSelection.java @@ -60,7 +60,7 @@ public SqmJpaCompoundSelection( @Override public SqmJpaCompoundSelection copy(SqmCopyContext context) { - final SqmJpaCompoundSelection existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } 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 bd61a0088b3b..f5017e192dbd 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 @@ -62,7 +62,7 @@ public SqmQueryGroup( @Override public SqmQueryPart copy(SqmCopyContext context) { - final SqmQueryGroup existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } 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 325432fe867c..3533d8e13524 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 @@ -98,7 +98,7 @@ public SqmQuerySpec(SqmQuerySpec original, SqmCopyContext context) { @Override public SqmQuerySpec copy(SqmCopyContext context) { - final SqmQuerySpec existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSelectStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSelectStatement.java index 4de3b90080da..18782b6f52cb 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSelectStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/select/SqmSelectStatement.java @@ -122,7 +122,7 @@ private SqmSelectStatement( @Override public SqmSelectStatement copy(SqmCopyContext context) { - final SqmSelectStatement existing = context.getCopy( this ); + final var existing = context.getCopy( this ); return existing != null ? existing : createCopy( context, getResultType() ); } 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 1d086f3bce81..b0bc52227bea 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 @@ -150,7 +150,7 @@ private SqmSubQuery( @Override public SqmSubQuery copy(SqmCopyContext context) { - final SqmSubQuery existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } diff --git a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/update/SqmUpdateStatement.java b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/update/SqmUpdateStatement.java index 5e9b8e7905a0..981226432c4a 100644 --- a/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/update/SqmUpdateStatement.java +++ b/hibernate-core/src/main/java/org/hibernate/query/sqm/tree/update/SqmUpdateStatement.java @@ -107,7 +107,7 @@ private SqmUpdateStatement( @Override public SqmUpdateStatement copy(SqmCopyContext context) { - final SqmUpdateStatement existing = context.getCopy( this ); + final var existing = context.getCopy( this ); if ( existing != null ) { return existing; } @@ -179,7 +179,7 @@ public void setSetClause(SqmSetClause setClause) { @Override public SqmUpdateStatement set(SingularAttribute attribute, @Nullable X value) { - final SqmCriteriaNodeBuilder nodeBuilder = (SqmCriteriaNodeBuilder) nodeBuilder(); + final var nodeBuilder = (SqmCriteriaNodeBuilder) nodeBuilder(); SqmPath sqmAttribute = getTarget().get( attribute ); applyAssignment( sqmAttribute, nodeBuilder.value( value, sqmAttribute) ); return this; @@ -193,7 +193,7 @@ public SqmUpdateStatement set(SingularAttribute attribute, @Override public SqmUpdateStatement set(Path attribute, @Nullable X value) { - final SqmCriteriaNodeBuilder nodeBuilder = (SqmCriteriaNodeBuilder) nodeBuilder(); + final var nodeBuilder = (SqmCriteriaNodeBuilder) nodeBuilder(); final SqmPath sqmAttribute = (SqmPath) attribute; applyAssignment( sqmAttribute, nodeBuilder.value( value, sqmAttribute ) ); return this; @@ -213,7 +213,7 @@ public SqmUpdateStatement set(String attributeName, @Nullable Object value) { expression = (SqmExpression) value; } else { - final SqmCriteriaNodeBuilder nodeBuilder = (SqmCriteriaNodeBuilder) nodeBuilder(); + final var nodeBuilder = (SqmCriteriaNodeBuilder) nodeBuilder(); expression = nodeBuilder.value( value, sqmPath ); } applyAssignment( sqmPath, expression ); diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/basic/CoercingResultAssembler.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/basic/CoercingResultAssembler.java index 91e9f003a081..6676eaad3fdd 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/basic/CoercingResultAssembler.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/basic/CoercingResultAssembler.java @@ -29,9 +29,6 @@ public CoercingResultAssembler( */ @Override public Object extractRawValue(RowProcessingState rowProcessingState) { - return assembledJavaType.coerce( - super.extractRawValue( rowProcessingState ), - rowProcessingState.getSession() - ); + return assembledJavaType.coerce( super.extractRawValue( rowProcessingState ) ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityInitializerImpl.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityInitializerImpl.java index 60a1f9c825f1..068253ec19a6 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityInitializerImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityInitializerImpl.java @@ -2112,7 +2112,7 @@ public boolean isHasLazyInitializingSubAssemblers() { return assemblers; } - protected @Nullable BasicResultAssembler discriminatorAssembler() { + protected @Nullable BasicResultAssembler getDiscriminatorAssembler() { return discriminatorAssembler; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/AbstractStandardBasicType.java b/hibernate-core/src/main/java/org/hibernate/type/AbstractStandardBasicType.java index 4dca9e44c747..62a4ceed34ee 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/AbstractStandardBasicType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/AbstractStandardBasicType.java @@ -258,7 +258,7 @@ public final String toLoggableString(Object value, SessionFactoryImplementor fac || !Hibernate.isInitialized( value ) ? "" : javaType.extractLoggableRepresentation( - javaType.coerce( value, factory::getTypeConfiguration ) ); + javaType.cast( javaType.coerce( value ) ) ); } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ArrayJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ArrayJavaType.java index 8010b895a3b4..8ecada319add 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ArrayJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ArrayJavaType.java @@ -128,8 +128,8 @@ public boolean areEqual(Object[] one, Object[] another) { // Horrible hack around the fact that java.sql.Timestamps // can be represented as instances of java.util.Date // (Why do we even allow this? We deprecated java.sql stuff!) - elementJavaType.coerce( one[i], null ), - elementJavaType.coerce( another[i], null ) )) { + elementJavaType.cast( elementJavaType.coerce( one[i] ) ), + elementJavaType.cast( elementJavaType.coerce( another[i] ) ) ) ) { return false; } } @@ -448,7 +448,7 @@ public T[] deepCopy(Object[] value) { // Horrible hack around the fact that java.sql.Timestamps // can be represented as instances of java.util.Date // (Why do we even allow this? We deprecated java.sql stuff!) - baseDescriptor.coerce( value[i], null ) ); + baseDescriptor.cast( baseDescriptor.coerce( value[i] ) ) ); } return copy; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/BigDecimalJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/BigDecimalJavaType.java index c04e276c3de9..4d6c75c1e10e 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/BigDecimalJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/BigDecimalJavaType.java @@ -130,7 +130,7 @@ public int getDefaultSqlPrecision(Dialect dialect, JdbcType jdbcType) { } @Override - public BigDecimal coerce(X value, CoercionContext coercionContext) { + public BigDecimal coerce(Object value) { if ( value == null ) { return null; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/BigIntegerJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/BigIntegerJavaType.java index 02cbb5d930b1..5b4a44bd0563 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/BigIntegerJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/BigIntegerJavaType.java @@ -132,7 +132,7 @@ public int getDefaultSqlScale(Dialect dialect, JdbcType jdbcType) { } @Override - public BigInteger coerce(X value, CoercionContext coercionContext) { + public BigInteger coerce(Object value) { if ( value == null ) { return null; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ByteJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ByteJavaType.java index ad7a4c5387f5..7e143c378b53 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ByteJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ByteJavaType.java @@ -136,7 +136,7 @@ public int getDefaultSqlScale(Dialect dialect, JdbcType jdbcType) { } @Override - public Byte coerce(X value, CoercionContext coercionContext) { + public Byte coerce(Object value) { if ( value == null ) { return null; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/DoubleJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/DoubleJavaType.java index a4cfcd16d679..6ee06c11b55c 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/DoubleJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/DoubleJavaType.java @@ -164,7 +164,7 @@ public int getDefaultSqlPrecision(Dialect dialect, JdbcType jdbcType) { } @Override - public Double coerce(X value, CoercionContext coercionContext) { + public Double coerce(Object value) { if ( value == null ) { return null; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/FloatJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/FloatJavaType.java index 66ed69088b7d..458640f20522 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/FloatJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/FloatJavaType.java @@ -162,7 +162,7 @@ public int getDefaultSqlPrecision(Dialect dialect, JdbcType jdbcType) { } @Override - public Float coerce(X value, CoercionContext coercionContext) { + public Float coerce(Object value) { if ( value == null ) { return null; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/IntegerJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/IntegerJavaType.java index a38d4827a3d1..e6e3364f5e8b 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/IntegerJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/IntegerJavaType.java @@ -152,7 +152,7 @@ public int getDefaultSqlScale(Dialect dialect, JdbcType jdbcType) { } @Override - public Integer coerce(Object value, CoercionContext coercionContext) { + public Integer coerce(Object value) { if ( value == null ) { return null; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JavaType.java index 06f7f626be40..93950012891a 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JavaType.java @@ -315,32 +315,22 @@ default boolean isWider(JavaType javaType) { } @FunctionalInterface + @Deprecated(forRemoval = true, since = "7.2") interface CoercionContext { TypeConfiguration getTypeConfiguration(); } /** * Coerce the given value to this type, if possible. - * The default implementation defined her simply - * performs an unchecked cast. Subclasses may override - * to perform meaningful coercion. - * - * @apiNote This operation is currently unsound. It - * should throw {@link CoercionException} when coercion - * fails, or its return value should be changed to - * {@link Object}. However, both of those changes had - * too much impact for now. * * @param value The value to coerce - * @param coercionContext The coercion context * @return The coerced value, or the given value * if no coercion was possible - * @param The type of the value + * @throws CoercionException if coercion fails */ @Incubating - default T coerce(X value, CoercionContext coercionContext) { - //noinspection unchecked - return (T) value; + default Object coerce(Object value) { + return value; } /** diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcDateJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcDateJavaType.java index bdfb6c23e8ba..9258833af50a 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcDateJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcDateJavaType.java @@ -115,45 +115,44 @@ public int extractHashCode(Date value) { } @Override - public Date coerce(Object value, CoercionContext coercionContext) { + public Date coerce(Object value) { return wrap( value, null ); } - @SuppressWarnings({"unchecked", "rawtypes"}) @Override - public Object unwrap(Date value, Class type, WrapperOptions options) { + public X unwrap(Date value, Class type, WrapperOptions options) { if ( value == null ) { return null; } if ( LocalDate.class.isAssignableFrom( type ) ) { - return unwrapLocalDate( value ); + return type.cast( unwrapLocalDate( value ) ); } if ( java.sql.Date.class.isAssignableFrom( type ) ) { - return unwrapSqlDate( value ); + return type.cast( unwrapSqlDate( value ) ); } if ( java.util.Date.class.isAssignableFrom( type ) ) { - return value; + return type.cast( value ); } if ( Long.class.isAssignableFrom( type ) ) { - return unwrapDateEpoch( value ); + return type.cast( unwrapDateEpoch( value ) ); } if ( String.class.isAssignableFrom( type ) ) { - return toString( value ); + return type.cast( toString( value ) ); } if ( Calendar.class.isAssignableFrom( type ) ) { final var gregorianCalendar = new GregorianCalendar(); gregorianCalendar.setTimeInMillis( unwrapDateEpoch( value ) ); - return gregorianCalendar; + return type.cast( gregorianCalendar ); } if ( java.sql.Timestamp.class.isAssignableFrom( type ) ) { - return new java.sql.Timestamp( unwrapDateEpoch( value ) ); + return type.cast( new java.sql.Timestamp( unwrapDateEpoch( value ) ) ); } if ( java.sql.Time.class.isAssignableFrom( type ) ) { diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimeJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimeJavaType.java index 48bc52f289e2..af0af15fe7f0 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimeJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimeJavaType.java @@ -117,13 +117,12 @@ public boolean areEqual(Date one, Date another) { } @Override - public Date coerce(Object value, CoercionContext coercionContext) { + public Date coerce(Object value) { return wrap( value, null ); } - @SuppressWarnings({"unchecked", "rawtypes"}) @Override - public Object unwrap(Date value, Class type, WrapperOptions options) { + public X unwrap(Date value, Class type, WrapperOptions options) { if ( value == null ) { return null; } @@ -136,42 +135,42 @@ public Object unwrap(Date value, Class type, WrapperOptions options) { final var localTime = time.toLocalTime(); long millis = time.getTime() % 1000; if ( millis == 0 ) { - return localTime; + return type.cast( localTime ); } if ( millis < 0 ) { // The milliseconds for a Time could be negative, // which usually means the time is in a different time zone millis += 1_000L; } - return localTime.with( ChronoField.NANO_OF_SECOND, millis * 1_000_000L ); + return type.cast( localTime.with( ChronoField.NANO_OF_SECOND, millis * 1_000_000L ) ); } if ( Time.class.isAssignableFrom( type ) ) { - return value instanceof Time - ? value - : new Time( value.getTime() % 86_400_000 ); + return type.cast( value instanceof Time time + ? time + : new Time( value.getTime() % 86_400_000 ) ); } if ( Date.class.isAssignableFrom( type ) ) { - return value; + return type.cast( value ); } if ( Long.class.isAssignableFrom( type ) ) { - return value.getTime(); + return type.cast( value.getTime() ); } if ( String.class.isAssignableFrom( type ) ) { - return toString( value ); + return type.cast( toString( value ) ); } if ( Calendar.class.isAssignableFrom( type ) ) { final var gregorianCalendar = new GregorianCalendar(); gregorianCalendar.setTimeInMillis( value.getTime() ); - return gregorianCalendar; + return type.cast( gregorianCalendar ); } if ( java.sql.Timestamp.class.isAssignableFrom( type ) ) { - return new java.sql.Timestamp( value.getTime() ); + return type.cast( new java.sql.Timestamp( value.getTime() ) ); } if ( java.sql.Date.class.isAssignableFrom( type ) ) { diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimestampJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimestampJavaType.java index 2b8f61a016e1..abd6a4079802 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimestampJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimestampJavaType.java @@ -114,52 +114,51 @@ public int extractHashCode(Date value) { } @Override - public Date coerce(Object value, CoercionContext coercionContext) { + public Date coerce(Object value) { return wrap( value, null ); } - @SuppressWarnings({"unchecked", "rawtypes"}) @Override - public Object unwrap(Date value, Class type, WrapperOptions options) { + public X unwrap(Date value, Class type, WrapperOptions options) { if ( value == null ) { return null; } if ( Timestamp.class.isAssignableFrom( type ) ) { - return value instanceof Timestamp timestamp + return type.cast( value instanceof Timestamp timestamp ? timestamp - : new Timestamp( value.getTime() ); + : new Timestamp( value.getTime() ) ); } if ( Date.class.isAssignableFrom( type ) ) { - return value; + return type.cast( value ); } if ( LocalDateTime.class.isAssignableFrom( type ) ) { final var instant = value.toInstant(); - return LocalDateTime.ofInstant( instant, ZoneId.systemDefault() ); + return type.cast( LocalDateTime.ofInstant( instant, ZoneId.systemDefault() ) ); } if ( Calendar.class.isAssignableFrom( type ) ) { final var gregorianCalendar = new GregorianCalendar(); gregorianCalendar.setTimeInMillis( value.getTime() ); - return gregorianCalendar; + return type.cast( gregorianCalendar ); } if ( Long.class.isAssignableFrom( type ) ) { - return value.getTime(); + return type.cast( value.getTime() ); } if ( java.sql.Date.class.isAssignableFrom( type ) ) { - return value instanceof java.sql.Date - ? (java.sql.Date) value - : new java.sql.Date( value.getTime() ); + return type.cast( value instanceof java.sql.Date date + ? date + : new java.sql.Date( value.getTime() ) ); } if ( java.sql.Time.class.isAssignableFrom( type ) ) { - return value instanceof java.sql.Time - ? (java.sql.Time) value - : new java.sql.Time( value.getTime() % 86_400_000 ); + return type.cast( value instanceof java.sql.Time time + ? time + : new java.sql.Time( value.getTime() % 86_400_000 ) ); } throw unknownUnwrap( type ); diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/LongJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/LongJavaType.java index f8950f859f69..b7c6d57a2b73 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/LongJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/LongJavaType.java @@ -118,7 +118,7 @@ public boolean isWider(JavaType javaType) { } @Override - public Long coerce(X value, CoercionContext coercionContext) { + public Long coerce(Object value) { if ( value == null ) { return null; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/PrimitiveByteArrayJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/PrimitiveByteArrayJavaType.java index f0b51879ce48..bfaedc9b68dc 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/PrimitiveByteArrayJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/PrimitiveByteArrayJavaType.java @@ -164,10 +164,15 @@ else if ( value instanceof Byte[] array ) { throw unknownWrap( value.getClass() ); } + @Override + public byte[] coerce(Object value) { + return wrap( value, null ); + } + @Override public byte[] seed( Long length, Integer precision, Integer scale, SharedSessionContractImplementor session) { - // Note : simply returns null for seed() and next() as the only known + // Note: simply returns null for seed() and next() as the only known // application of binary types for versioning is for use with the // TIMESTAMP datatype supported by Sybase and SQL Server, which // are completely db-generated values... diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/PrimitiveCharacterArrayJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/PrimitiveCharacterArrayJavaType.java index dad8386ce0dd..7bcb1fca2908 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/PrimitiveCharacterArrayJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/PrimitiveCharacterArrayJavaType.java @@ -109,7 +109,7 @@ else if ( value instanceof Character character ) { } @Override - public char[] coerce(X value, CoercionContext coercionContext) { + public char[] coerce(Object value) { return wrap( value, null ); } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ShortJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ShortJavaType.java index ed6ef2f81e7d..ad03c859e188 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ShortJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ShortJavaType.java @@ -143,7 +143,7 @@ public int getDefaultSqlScale(Dialect dialect, JdbcType jdbcType) { } @Override - public Short coerce(Object value, CoercionContext coercionContext) { + public Short coerce(Object value) { if ( value == null ) { return null; } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/StringJavaType.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/StringJavaType.java index 55bcd5c45b87..a10b9fc29ac4 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/StringJavaType.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/java/StringJavaType.java @@ -147,7 +147,7 @@ public boolean isWider(JavaType javaType) { } @Override - public String coerce(X value, CoercionContext coercionContext) { + public String coerce(Object value) { return wrap( value, null ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/spi/BasicJdbcLiteralFormatter.java b/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/spi/BasicJdbcLiteralFormatter.java index c1677f9078fb..0048cbca97da 100644 --- a/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/spi/BasicJdbcLiteralFormatter.java +++ b/hibernate-core/src/main/java/org/hibernate/type/descriptor/jdbc/spi/BasicJdbcLiteralFormatter.java @@ -32,7 +32,7 @@ protected X unwrap(Object value, Class unwrapType, WrapperOptions options return javaType.unwrap( castValue, unwrapType, options ); } else { - final T coerced = javaType.coerce( value, options::getTypeConfiguration ); + final T coerced = javaType.cast( javaType.coerce( value ) ); return unwrapType.isInstance( coerced ) ? unwrapType.cast( coerced ) : javaType.unwrap( coerced, unwrapType, options ); diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/type/java/CoercionTests.java b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/type/java/CoercionTests.java index 7f007c7b2c84..ac353c2bf2fb 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/type/java/CoercionTests.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/type/java/CoercionTests.java @@ -70,62 +70,62 @@ public void testCoercibleDetection(SessionFactoryScope scope) { } private void checkDoubleConversions(JavaType doubleType, SessionImplementor session) { - assertThat( doubleType.coerce( (double) 1, session ) ).isEqualTo( 1.0 ); - assertThat( doubleType.coerce( 1F, session ) ).isEqualTo( 1.0 ); - assertThat( doubleType.coerce( doubleValue, session ) ).isEqualTo( doubleValue ); - assertThat( doubleType.coerce( floatValue, session ) ).isEqualTo( doubleValue ); + assertThat( doubleType.coerce( (double) 1 ) ).isEqualTo( 1.0 ); + assertThat( doubleType.coerce( 1F ) ).isEqualTo( 1.0 ); + assertThat( doubleType.coerce( doubleValue ) ).isEqualTo( doubleValue ); + assertThat( doubleType.coerce( floatValue ) ).isEqualTo( doubleValue ); - assertThat( doubleType.coerce( largeFloatValue, session ) ).isEqualTo( largeFloatValue ); + assertThat( doubleType.coerce( largeFloatValue ) ).isEqualTo( Double.valueOf( largeFloatValue ) ); - assertThat( doubleType.coerce( shortValue, session ) ).isEqualTo( 1.0 ); - assertThat( doubleType.coerce( byteValue, session ) ).isEqualTo( 1.0 ); - assertThat( doubleType.coerce( longValue, session ) ).isEqualTo( 1.0 ); + assertThat( doubleType.coerce( shortValue ) ).isEqualTo( 1.0 ); + assertThat( doubleType.coerce( byteValue ) ).isEqualTo( 1.0 ); + assertThat( doubleType.coerce( longValue ) ).isEqualTo( 1.0 ); - assertThat( doubleType.coerce( BigInteger.ONE, session ) ).isEqualTo( 1.0 ); - assertThat( doubleType.coerce( BigDecimal.ONE, session ) ).isEqualTo( 1.0 ); + assertThat( doubleType.coerce( BigInteger.ONE ) ).isEqualTo( 1.0 ); + assertThat( doubleType.coerce( BigDecimal.ONE ) ).isEqualTo( 1.0 ); // negative checks } private void checkIntegerConversions(JavaType integerType, SessionImplementor session) { - assertThat( integerType.coerce( intValue, session ) ).isEqualTo( intValue ); + assertThat( integerType.coerce( intValue ) ).isEqualTo( intValue ); - assertThat( integerType.coerce( shortValue, session ) ).isEqualTo( intValue ); - assertThat( integerType.coerce( byteValue, session ) ).isEqualTo( intValue ); + assertThat( integerType.coerce( shortValue ) ).isEqualTo( intValue ); + assertThat( integerType.coerce( byteValue ) ).isEqualTo( intValue ); - assertThat( integerType.coerce( longValue, session ) ).isEqualTo( intValue ); + assertThat( integerType.coerce( longValue ) ).isEqualTo( intValue ); - assertThat( integerType.coerce( (double) 1, session ) ).isEqualTo( intValue ); - assertThat( integerType.coerce( 1F, session ) ).isEqualTo( intValue ); + assertThat( integerType.coerce( (double) 1 ) ).isEqualTo( intValue ); + assertThat( integerType.coerce( 1F ) ).isEqualTo( intValue ); - assertThat( integerType.coerce( BigInteger.ONE, session ) ).isEqualTo( intValue ); - assertThat( integerType.coerce( BigDecimal.ONE, session ) ).isEqualTo( intValue ); + assertThat( integerType.coerce( BigInteger.ONE ) ).isEqualTo( intValue ); + assertThat( integerType.coerce( BigDecimal.ONE ) ).isEqualTo( intValue ); // negative checks - checkDisallowedConversion( () -> integerType.coerce( largeLongValue, session ) ); - checkDisallowedConversion( () -> integerType.coerce( largeFloatValue, session ) ); - checkDisallowedConversion( () -> integerType.coerce( doubleValue, session ) ); - checkDisallowedConversion( () -> integerType.coerce( floatValue, session ) ); + checkDisallowedConversion( () -> integerType.coerce( largeLongValue ) ); + checkDisallowedConversion( () -> integerType.coerce( largeFloatValue ) ); + checkDisallowedConversion( () -> integerType.coerce( doubleValue ) ); + checkDisallowedConversion( () -> integerType.coerce( floatValue ) ); } private void checkLongConversions(JavaType longType, SessionImplementor session) { - assertThat( longType.coerce( longValue, session ) ).isEqualTo( longValue ); - assertThat( longType.coerce( largeLongValue, session ) ).isEqualTo( largeLongValue ); + assertThat( longType.coerce( longValue ) ).isEqualTo( longValue ); + assertThat( longType.coerce( largeLongValue ) ).isEqualTo( largeLongValue ); - assertThat( longType.coerce( intValue, session ) ).isEqualTo( longValue ); - assertThat( longType.coerce( shortValue, session ) ).isEqualTo( longValue ); - assertThat( longType.coerce( byteValue, session ) ).isEqualTo( longValue ); + assertThat( longType.coerce( intValue ) ).isEqualTo( longValue ); + assertThat( longType.coerce( shortValue ) ).isEqualTo( longValue ); + assertThat( longType.coerce( byteValue ) ).isEqualTo( longValue ); - assertThat( longType.coerce( (double) 1, session ) ).isEqualTo( longValue ); - assertThat( longType.coerce( 1F, session ) ).isEqualTo( longValue ); + assertThat( longType.coerce( (double) 1 ) ).isEqualTo( longValue ); + assertThat( longType.coerce( 1F ) ).isEqualTo( longValue ); - assertThat( longType.coerce( BigInteger.ONE, session ) ).isEqualTo( longValue ); - assertThat( longType.coerce( BigDecimal.ONE, session ) ).isEqualTo( longValue ); + assertThat( longType.coerce( BigInteger.ONE ) ).isEqualTo( longValue ); + assertThat( longType.coerce( BigDecimal.ONE ) ).isEqualTo( longValue ); // negative checks - checkDisallowedConversion( () -> longType.coerce( largeFloatValue, session ) ); - checkDisallowedConversion( () -> longType.coerce( doubleValue, session ) ); - checkDisallowedConversion( () -> longType.coerce( floatValue, session ) ); + checkDisallowedConversion( () -> longType.coerce( largeFloatValue ) ); + checkDisallowedConversion( () -> longType.coerce( doubleValue ) ); + checkDisallowedConversion( () -> longType.coerce( floatValue ) ); } private void checkDisallowedConversion(CoercionHelper.Coercer callback) {