Deprecated API
Contents
-
Terminally Deprecated ElementsElementDescriptionUse the JPA-defined
CascadeType
Use the JPA-definedCascadeType
. This enumeration will be removed to alleviate the duplication in naming.UseQueryFlushMode
. This enumeration will be removed to alleviate the duplication in naming withFlushModeType
.UseColumn.secondPrecision()
which was introduced in JPA 3.2Use the new approach based onIdGeneratorType
.useGenericGenerator.type()
for typesafetysinceGenericGenerator
is deprecated.Use anExpectation
class instead.useCurrentTimestamp
insteaduseSQLDelete.verify()
with anExpectation
classuseSQLDeleteAll.verify()
with anExpectation
classuseSQLInsert.verify()
with anExpectation
classuseSQLUpdate.verify()
with anExpectation
classJust implementSessionEventListener
directly.No longer usedInternal code should use the internal implementation classTypeDefinitionRegistryStandardImpl
. This class will be removed.Use NamedStrategyContributor insteadUse NamedStrategyContributor insteadThis enumeration is currently unused and will be removed.This has no effect and will be removed.No longer has any effect.since "hibernate.discard_pc_on_close" is deprecatedwith no replacement.Use settings,TypeContributor
,FunctionContributor
orAdditionalMappingContributor
instead depending on needno longer calledwith no replacement.This operation is a layer-breaker, exposing an internal type. It will be removed. UseSessionFactoryOptions.buildSessionEventListeners()
instead.This is unused and will be removed.with no replacement.This is no longer usedsince "hibernate.discard_pc_on_close" is deprecatedWill be removed without replacement. See HHH-15641Will be removed without replacement. See HHH-15641UseByteBuddyState.loadProxy(Class, String, BiFunction)
instead.Register aBytecodeProvider
through Java services.UseBytecodeProvider.getReflectionOptimizer(Class, Map)
inssteadThis setting no longer has any effect.This is no longer useful and will be removed.Will be removed, Hibernate ORM will use the BytecodeProvider implementation it finds on the classpath loading it via the standard ServiceLoader mechanism. Currently, there is only a single implementation which is included in Hibernate ORM, so it's not possible to override this. See HHH-17643Will be removed without replacement. See HHH-15641Will be removed without replacement. See HHH-15641It's not necessary to set this explicitlyThis setting is now ignored. Enable the log categoryorg.hibernate.session.metrics
to automatically collect and log session-level metrics.UsePersistentBag.bagAsList()
orPersistentBag.collection
instead.useDialect.getCheckCondition(String, Long[])
insteadUse Dialect.getNativeValueGenerationStrategy() insteadMoved toDialect
Moved toDialect
in favor ofSize(Integer, Integer, Long)
in favor ofSize(Integer, Integer, Long)
Use SchemaNameResolver instead.This class is no longer used and will be removedbecauseCascadeType.LOCK
is deprecatedUse anExpectation
classOnly used in one place, will be removedNo longer useful, since Java made downcasting saferNo longer useful, since Java made downcasting saferNo longer used, replaced bySharedSessionContractImplementor.instantiate(EntityPersister, Object)
No longer useful, since Java made downcasting saferNo longer useful, since Java made downcasting saferThis is no longer neededRenamedEventMonitor
.RenamedDiagnosticEvent
.Graph.addElementSubgraph(PluralAttribute)
was added in JPA 3.2, and so this method is no longer neededThis will be removedThis will be removedPlanned for removal in JPA 4Subclasses should now directly inheritPostInsertIdentifierGenerator
andBulkInsertionCapableIdentifierGenerator
, or even better, simply implementOnExecutionGenerator
directly.replaced byAssigned
This remains around as an implementation detail ofhbm.xml
mappings.since it overrides a deprecated methodThis is not an elegant way to do anythingUseGeneratedValuesMutationDelegate
instead.no longer set, useJdbcEnvironment.getIdentifierHelper()
This class is no longer needed and will be removed.use the default constructor insteaduseStandardStack(Object)
instead.No longer usedNo longer usedNo longer usedNo longer usedUse discovery instead.Consider using discovery instead to dynamically locate contributors.sincePersistenceUnitTransactionType
will be removed in JPA 4Consider using discovery instead to dynamically locate contributors.No longer called, except from tests. UseKeyValue.createGenerator(Dialect, RootClass, Property, GeneratorSettings)
No longer supportedUseDiscriminable.getDiscriminatorMapping()
instead.No longer usedHigly inefficient - do not use; this exists to support other deprecated methods and will be removed.Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here (generally),PluralAttributeMapping
Read-by-position makes this irrelevant. Currently still used bySQLQueryParser
Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here,PluralAttributeMapping.getElementDescriptor()
Read-by-position makes this irrelevant. Currently still used bySQLQueryParser
Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here,PluralAttributeMapping.getIdentifierDescriptor()
Read-by-position makes this irrelevant. Currently still used bySQLQueryParser
Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here,PluralAttributeMapping.getIndexDescriptor()
Read-by-position makes this irrelevant. Currently still used bySQLQueryParser
Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here,PluralAttributeMapping.getKeyDescriptor()
The functionality of DiscriminatorMetadata,DiscriminatorType
andMetaType
have been consolidated intoEntityDiscriminatorMapping
andDiscriminatorConverter
The functionality of DiscriminatorType,DiscriminatorMetadata
andMetaType
have been consolidated intoEntityDiscriminatorMapping
andDiscriminatorConverter
No longer calledNo longer used in ORM coreuseEntityMutationTarget.getInsertDelegate()
insteadNo longer used.org.hibernate.query.criteria.HibernateCriteriaBuilder.arrayContainsAllNullable(Expression<T[]>, T[]) org.hibernate.query.criteria.HibernateCriteriaBuilder.arrayContainsAllNullable(T[], Expression<T[]>) This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(Subquery, org.hibernate.query.common.JoinType)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(Subquery, org.hibernate.query.common.JoinType, boolean)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(Class, org.hibernate.query.common.JoinType)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(EntityDomainType, org.hibernate.query.common.JoinType)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(JpaCteCriteria, org.hibernate.query.common.JoinType)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.joinLateral(Subquery, org.hibernate.query.common.JoinType)
No longer calledThis enumeration will be removed, and replaced with a simpler boolean-valued switch.SinceImmutableEntityUpdateQueryHandlingMode
is deprecated. UseQueryEngineOptions.allowImmutableEntityUpdate()
instead.UseQueryParameterBindings.empty()
instead. Currently unused and can be safely removed.This interface is no longer needed and will be removed.this constructor does not carry information about the query which caused the failureThis enum still has exactly one member, and was placed in a package from which it has no usages. It will be removed or moved.ImplementArgumentsValidator.validate(List, String, BindingContext)
insteadUseSqmPathSource.findSubPathSource(String, boolean)
insteadUse #SqmPathSource.getSubPathSource(String, boolean)
insteadwas previously used for HQL. UseSqmUpdateStatement(NodeBuilder)
insteadwas previously used for Criteria. UseSqmUpdateStatement(Class, SqmCriteriaNodeBuilder)
instead.UseSessionBuilder.tenantIdentifier(Object)
insteadNo longer calledWill be removed. Use the other methods to visit each operation.Will be removed. Use the other methods to visit each operation.The existence of this method encourages people to pass around references to the SessionFactoryImplementor when they don't need itin favor ofScrollableResultsConsumer.instance()
UseStatelessSessionBuilder.tenantIdentifier(Object)
insteadNo direct replacement.No direct replacement.Replaced byAttributeMapping
No direct replacement, though seeAttributeMapping
andAttributeMetadata
No direct replacementNo direct replacementNo direct replacementNo direct replacementNo direct replacementReplaced byEntityMappingType
. EntityMetamodel was a first attempt at what has becomeEntityMappingType
Replaced byEntityVersionMapping
Replaced byEventType
as id-generation has been redefined using the new broader generation approach. For 7.0, this is kept around to supporthbm.xml
mappings and will be removed in 8.0 once we finally drophbm.xml
support.No direct replacement; seeEntityIdentifierMapping
No direct replacement; seeEntityIdentifierMapping
No direct replacementNo direct replacementReplaced byAttributeMapping
in favor ofImmutability.instance()
in favor ofImmutableMutabilityPlan.instance()
UseH2JsonJdbcType
insteadIs not called anymoreThis very old approach was never properly implemented in all contexts, and never actually achieved the type safety it aimed for. Just useParameterizedType
for now.
-
Deprecated Packages
-
Deprecated InterfacesInterfaceDescriptionUse settings,
TypeContributor
,FunctionContributor
orAdditionalMappingContributor
instead depending on needPrefer the form of these methods defined onBytecodeLazyAttributeInterceptor
insteadMoved, but still need this definition for ehcacheMoved toDialect
Use SchemaNameResolver instead.This is no longer neededuseAuditStrategy
instead.This is no longer implemented by any listenerRenamedEventMonitor
.RenamedDiagnosticEvent
.sinceSession.replicate(java.lang.Object, org.hibernate.ReplicationMode)
is deprecatedUseGeneratedValuesMutationDelegate
instead.seeUUIDGenerator
Consider using discovery instead to dynamically locate contributors.Use theSpecHints
form insteadThe functionality of DiscriminatorMetadata,DiscriminatorType
andMetaType
have been consolidated intoEntityDiscriminatorMapping
andDiscriminatorConverter
This interface is no longer needed and will be removed.SpatialDialects are no longer needed since Hibernate 6.0Will be removed in 6UseTupleTransformer
and/orResultListTransformer
insteadReplaced byAttributeMapping
No direct replacement; seeEntityIdentifierMapping
No direct replacementThis very old approach was never properly implemented in all contexts, and never actually achieved the type safety it aimed for. Just useParameterizedType
for now.
-
Deprecated ClassesClassDescriptionJust implement
SessionEventListener
directly.Internal code should use the internal implementation classTypeDefinitionRegistryStandardImpl
. This class will be removed.Moved toDialect
This class is no longer used and will be removeduseDefaultAuditStrategy
instead.useValidityAuditStrategy
instead.sinceSession.replicate(java.lang.Object, org.hibernate.ReplicationMode)
is deprecatedbecause bothSource
andhbm.xml
are deprecated, though this implementation is instructiveSubclasses should now directly inheritPostInsertIdentifierGenerator
andBulkInsertionCapableIdentifierGenerator
, or even better, simply implementOnExecutionGenerator
directly.sinceUUIDHexGenerator
is deprecatedreplaced byAssigned
This remains around as an implementation detail ofhbm.xml
mappings.useUuidGenerator
useUuidGenerator
andUuidGenerator
insteadThis remains around as an implementation detail ofhbm.xml
mappings.This class is no longer needed and will be removed.UseClassLoaderService
insteadThis is a legacy of very ancient versions of Hibernate.Hibernate now uses StAX for XML processing and the role of this class is served now byLocalXmlResourceResolver
The JPA specification does not require that we allow entity lifecycle callbacks on embeddable classes, and this is a misfeature since:- an embeddable objects doesn't have a well-defined lifecycle,
- it's difficult to understand what this means for composite collection elements, and
- currently, the
PreUpdate
/PostUpdate
callbacks get called when the embeddable object is not itself being updated.
UseAvailableHints
insteadPlease get rid of it: such collections should be immutable.The functionality of DiscriminatorType,DiscriminatorMetadata
andMetaType
have been consolidated intoEntityDiscriminatorMapping
andDiscriminatorConverter
Spatial Dialects are no longer needed. Use the standard CockroachDB dialectsSpatial dialects are no longer neededUse "hibernate.dialect.storage_engine=innodb" environment variable or JVM system property instead.Spatial Dialects are no longer neededUse "hibernate.dialect.storage_engine=innodb" environment variable or JVM system property instead.Spatial Dialects are no longer neededSpatialDialects are no longer needed in Hibernate 6A SpatialDialect is no longer required. Use the standard Dialect for this database.A SpatialDialect is no longer required. Use the standard Dialect for this database.A SpatialDialect is no longer required. Use the standard Dialect for this database.A SpatialDialect is no longer required. Use the standard Dialect for this database.A SpatialDialect is no longer required. Use the standard Dialect for this database.A SpatialDialect is no longer required. Use the standard Dialect for this database.UseGeolatteSpatialCriteriaBuilder
insteadUseGeolatteSpatialCriteriaBuilder
insteadUseJTSSpatialCriteriaBuilder
insteadsinceResultTransformer
is deprecatedsinceResultTransformer
is deprecatedsinceResultTransformer
is deprecatedsinceResultTransformer
is deprecatedsinceResultTransformer
is deprecatedNo direct replacement.No direct replacement.No direct replacement, though seeAttributeMapping
andAttributeMetadata
No direct replacementNo direct replacementNo direct replacementNo direct replacementNo direct replacementReplaced byEntityMappingType
. EntityMetamodel was a first attempt at what has becomeEntityMappingType
Replaced byEntityVersionMapping
No direct replacement; seeEntityIdentifierMapping
No direct replacementReplaced byAttributeMapping
UseImmutableObjectArrayMutabilityPlan.get()
for object arrays, or implement a dedicated mutability plan for primitive arrays (see for exampleShortPrimitiveArrayJavaType
's mutability plan).UseH2JsonJdbcType
insteaduseFloatJdbcType
-
Deprecated Enum ClassesEnum ClassDescriptionUse the JPA-defined
CascadeType
. This enumeration will be removed to alleviate the duplication in naming.UseQueryFlushMode
. This enumeration will be removed to alleviate the duplication in naming withFlushModeType
.Use anExpectation
class instead.This enumeration is currently unused and will be removed.All dialects currently useTempTableDdlTransactionHandling.NONE
, so it's obsolete.Use anExpectation
classUse Jakarta Persistence Nulls instead.This enumeration will be removed, and replaced with a simpler boolean-valued switch.This enum still has exactly one member, and was placed in a package from which it has no usages. It will be removed or moved.sinceSession.replicate(Object, ReplicationMode)
is deprecatedTo be replaced byCommonSpatialFunction
Replaced byEventType
as id-generation has been redefined using the new broader generation approach. For 7.0, this is kept around to supporthbm.xml
mappings and will be removed in 8.0 once we finally drophbm.xml
support.
-
Deprecated ExceptionsExceptionsDescriptionIt would be nice to be able to eliminate this completelyMethods of
Interceptor
are no longer required to throw this exception type.
-
Deprecated Annotation InterfacesAnnotation InterfaceDescriptionUse the JPA-defined
CascadeType
sinceCheck
is deprecated.PreferTable.comment()
,Column.comment()
, etc.Per Comment, prefer Table.comment()UseColumn.secondPrecision()
which was introduced in JPA 3.2Use the new approach based onIdGeneratorType
.sinceGenericGenerator
is deprecated.useCurrentTimestamp
instead
-
Deprecated FieldsFieldDescriptionRegister a
BytecodeProvider
through Java services.This setting no longer has any effect.This is no longer useful and will be removed.UseAvailableSettings.JAKARTA_LOCK_SCOPE
insteadUseAvailableSettings.JAKARTA_LOCK_TIMEOUT
insteadUseBatchSettings.BUILDER
insteadWill be removed, Hibernate ORM will use the BytecodeProvider implementation it finds on the classpath loading it via the standard ServiceLoader mechanism. Currently, there is only a single implementation which is included in Hibernate ORM, so it's not possible to override this. See HHH-17643Will be removed without replacement. See HHH-15641Will be removed without replacement. See HHH-15641this is only honored forhibernate-infinispan
UseCacheSettings.JAKARTA_SHARED_CACHE_MODE
insteadUseCacheSettings.JAKARTA_SHARED_CACHE_RETRIEVE_MODE
insteadUseCacheSettings.JAKARTA_SHARED_CACHE_STORE_MODE
insteadThis setting is only supported byC3P0ConnectionProvider
andDriverManagerConnectionProviderImpl
.The JPA-standard "jakarta.persistence.jtaDataSource" or "jakarta.persistence.nonJtaDataSource" setting are now preferred.UseJdbcSettings.JAKARTA_HBM2DDL_DB_MAJOR_VERSION
insteadUseJdbcSettings.JAKARTA_HBM2DDL_DB_MINOR_VERSION
insteadUseJdbcSettings.JAKARTA_HBM2DDL_DB_NAME
insteadUseJdbcSettings.JAKARTA_HBM2DDL_DB_VERSION
insteadThe JPA-standard settingJdbcSettings.JAKARTA_JDBC_DRIVER
is now preferred.UseJdbcSettings.JAKARTA_HBM2DDL_CONNECTION
insteadUseJdbcSettings.JAKARTA_JDBC_DRIVER
insteadUseJdbcSettings.JAKARTA_JDBC_PASSWORD
insteadUseJdbcSettings.JAKARTA_JDBC_URL
insteadUseJdbcSettings.JAKARTA_JDBC_USER
insteadUseJdbcSettings.JAKARTA_JTA_DATASOURCE
insteadUseJdbcSettings.JAKARTA_NON_JTA_DATASOURCE
insteadThe JPA-standard settingJdbcSettings.JAKARTA_JDBC_PASSWORD
is now preferred.The JPA-standard settingJdbcSettings.JAKARTA_JDBC_URL
is now preferred.It's not necessary to set this explicitlyThe JPA-standard settingJdbcSettings.JAKARTA_JDBC_USER
is now preferred.No longer has any effect. Since 7.0 (and removal of save/update processing), Hibernate always cascades PERSISTUseManagedBeanSettings.JAKARTA_CDI_BEAN_MANAGER
insteadUsePersistenceSettings.JAKARTA_PERSISTENCE_PROVIDER
insteadUsePersistenceSettings.JAKARTA_TRANSACTION_TYPE
insteadthis setting is not currently usedThe JPA-standard settingSchemaToolingSettings.JAKARTA_HBM2DDL_CREATE_SCHEMAS
is now preferred.Migrate toSchemaToolingSettings.JAKARTA_HBM2DDL_CREATE_SOURCE
insteadThe JPA-standard settingSchemaToolingSettings.JAKARTA_HBM2DDL_LOAD_SCRIPT_SOURCE
is now preferred.This setting is now ignored. Enable the log categoryorg.hibernate.session.metrics
to automatically collect and log session-level metrics.UseValidationSettings.JAKARTA_VALIDATION_FACTORY
insteadUseValidationSettings.JAKARTA_VALIDATION_MODE
insteadUsePersistentBag.bagAsList()
orPersistentBag.collection
instead.becauseCascadeType.LOCK
is deprecatedUseGraphLanguageLexer.VOCABULARY
instead.UseGraphLanguageParser.VOCABULARY
instead.UseHqlLexer.VOCABULARY
instead.UseHqlParser.VOCABULARY
instead.UseSqlScriptLexer.VOCABULARY
instead.UseSqlScriptParser.VOCABULARY
instead.UseOrderingLexer.VOCABULARY
instead.UseOrderingParser.VOCABULARY
instead.This is not an elegant way to do anythingno longer set, useJdbcEnvironment.getIdentifierHelper()
UseExpectation.None
Use discovery instead.Consider using discovery instead to dynamically locate contributors.this feature of HQL is now deprecatedUseQueryParameterBindings.empty()
instead. Currently unused and can be safely removed.in favor ofScrollableResultsConsumer.instance()
in favor ofImmutability.instance()
in favor ofImmutableMutabilityPlan.instance()
-
Deprecated MethodsMethodDescriptionuse
GenericGenerator.type()
for typesafetyuseSQLDelete.verify()
with anExpectation
classuseSQLDeleteAll.verify()
with anExpectation
classuseSQLInsert.verify()
with anExpectation
classuseSQLUpdate.verify()
with anExpectation
class(since 7.0) Not used; no replacement.With move to unified schema, this setting is now deprecated and will be removed once support for readinghbm.xml
files is fully removed.Set thehibernate-models
settinghibernate.models.jandex.index
instead. This method has no effect.User should use NamedStoredProcedureQuery insteadNo longer usedSee discussion ofTypeContributor
in User Guide.UseTypeContributions.contributeType(BasicType)
instead.UseTypeContributions.contributeType(BasicType)
instead.Use NamedStrategyContributor insteadUse NamedStrategyContributor insteadThis has no effect and will be removed.No longer has any effect.since "hibernate.discard_pc_on_close" is deprecatedwith no replacement.hbm.xml
mapping file support is deprecated. Use extended orm.xml bindings instead.Set via thehibernate-models
settinghibernate.models.jandex.index
insteadNo longer supportedUse BootstrapContext.getModelsContext() instead.no longer calledwith no replacement.This operation is a layer-breaker, exposing an internal type. It will be removed. UseSessionFactoryOptions.buildSessionEventListeners()
instead.This is unused and will be removed.with no replacement.This is no longer usedsince "hibernate.discard_pc_on_close" is deprecatedWill be removed without replacement. See HHH-15641Will be removed without replacement. See HHH-15641UseByteBuddyState.loadProxy(Class, String, BiFunction)
instead.UseBytecodeProvider.getReflectionOptimizer(Class, Map)
inssteadonly because it's currently never calledIn dialect implementations, preferDatabaseVersion.makeCopyOrDefault(DatabaseVersion)
to gracefully default to the minimum supported version.In dialect implementations, preferDatabaseVersion.makeCopyOrDefault(DatabaseVersion)
to gracefully default to the minimum supported version.useDialect.getCheckCondition(String, Long[])
insteadSince Hibernate now baselines on Java 17,Connection.getSchema()
is always available directly. Never used internally.No longer usedUse Dialect.getNativeValueGenerationStrategy() insteadOverride the methodrenderInsertIntoNoColumns()
on thetranslator
returned by this dialect.No dialect currently overrides this, so it's obsoleteUse a providedSqlStringGenerationContext
instead.this method should be removed; alternative methods are available that better express the intent, allowing for better optimisations. Not aggressively removing this as it's an SPI, but also useful for testing and other contexts which are not performance sensitive. N.B. This might return an immutable map: do not use for mutations!Just as the method it overrides. Interceptors that deal with lazy state should implementBytecodeLazyAttributeInterceptor
Just as the method it overrides. Interceptors that deal with lazy state should implementBytecodeLazyAttributeInterceptor
Interceptors that deal with * lazy state should implementBytecodeLazyAttributeInterceptor
Only used in one place, will be removedNo longer useful, since Java made downcasting saferNo longer useful, since Java made downcasting saferNo longer used, replaced bySharedSessionContractImplementor.instantiate(EntityPersister, Object)
No longer useful, since Java made downcasting saferNo longer useful, since Java made downcasting saferUse@AuditOverride(forClass=SomeEntity.class)
instead.useRevisionListener
instead. While this method is being deprecated, expect a new API for this in 6.0.Instead use setLockOptionswith no replacement.UseEventListenerGroup.clearListeners()
instead, which doesn't also reset the registeredDuplicationStrategy
s.this is not the most efficient way for iterating the event listeners. SeeEventListenerGroup.fireEventOnEachListener(Object, BiConsumer)
and its overloaded variants for better alternatives.There is no plan to remove this operation, but its use should be avoided sinceFilterDefinition
is an SPI type, and so this operation is a layer-breaker.This operation is not properly type safe. Note thatgraph.addAttributeNode(att).makeKeySubGraph()
is a synonym forgraph.addMapKeySubgraph(att)
.This operation is not properly type safe. Note thatgraph.addAttributeNode(att).makeKeySubGraph(cl)
is a synonym forgraph.addTreatedMapKeySubgraph(att,cl)
.This operation is not properly type safe. Note thatgraph.addAttributeNode(att).makeSubGraph()
is a synonym forgraph.addSubgraph(att)
.This operation is not properly type safe. Note thatgraph.addAttributeNode(att).makeSubGraph(cl)
is a synonym forgraph.addTreatedSubgraph(att,cl)
.Since it is not type safe and returns a raw typeSince it is not type safe, returns a raw type, and accepts a stringSince it is not type safe and returns a raw typeSince it accepts a string instead ofGraphSemantic
Graph.addElementSubgraph(PluralAttribute)
was added in JPA 3.2, and so this method is no longer neededThis will be removedThis will be removedUseGraphSemantic.getJakartaHintName()
insteadPlanned for removal in JPA 4Exposed for tests only.UseDatabaseStructure.configure(Optimizer)
instead.Exposed for tests only.since it overrides a deprecated methodExposed for tests only.UseArray.newInstance(Class, int)
instead.No longer usedNo longer usedNo longer usedDepending on context, eitherClassLoaderService
orClassLoaderAccess
should be preferredNo longer usedsincePersistenceUnitTransactionType
will be removed in JPA 4No longer has any effect.Always enabled. See JpaCompliance.isJpaCascadeComplianceEnabled()useCheckConstraint.constraintString(Dialect)
instead.No longer called, except from tests. UseKeyValue.createGenerator(Dialect, RootClass, Property, GeneratorSettings)
No longer supportedSee discussion inEmbeddableCallback
.See discussion inEmbeddableCallback
.No longer supportedNo longer supportednew read-by-position paradigm means that these generated aliases are no longer needednew read-by-position paradigm means that these generated aliases are no longer neededUseTable.addInitCommand(Function)
instead.Should build aQualifiedTableName
then useSqlStringGenerationContext.format(QualifiedTableName)
.UseDiscriminable.getDiscriminatorMapping()
instead.No longer supportedshould be removedNo longer usedHigly inefficient - do not use; this exists to support other deprecated methods and will be removed.Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here (generally),PluralAttributeMapping
Read-by-position makes this irrelevant. Currently still used bySQLQueryParser
Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here,PluralAttributeMapping.getElementDescriptor()
Read-by-position makes this irrelevant. Currently still used bySQLQueryParser
Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here,PluralAttributeMapping.getIdentifierDescriptor()
Read-by-position makes this irrelevant. Currently still used bySQLQueryParser
Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here,PluralAttributeMapping.getIndexDescriptor()
Read-by-position makes this irrelevant. Currently still used bySQLQueryParser
Hibernate is moving away fromType
. Corresponding mapping metamodel calls should be used instead - here,PluralAttributeMapping.getKeyDescriptor()
by the supertypesHibernate no longer uses aliases to read from result setsHibernate no longer uses aliases to read from result setsHibernate no longer uses aliases to read from result setsHibernate no longer uses aliases to read from result setsThis feature is no longer supportedUseSelectableMapping.getSelectionExpression()
insteadUseEntityPersister.getValue(java.lang.Object, int)
insteadUseEntityPersister.getValues(java.lang.Object)
insteadNo longer calledOnly ever used from places where we really want to useSelectStatement
(select generator)InsertSelectStatement
UpdateStatement
DeleteStatement
UseEntityPersister.canReadFromCache()
and/orEntityPersister.canWriteToCache()
depending on needNo longer used in ORM coreuseEntityMutationTarget.getInsertDelegate()
insteadNo longer used.org.hibernate.procedure.internal.ProcedureCallImpl.setParameter(Parameter<Date>, Date, TemporalType) sinceTemporalType
is deprecatedsinceTemporalType
is deprecatedsinceTemporalType
is deprecatedsinceTemporalType
is deprecatedsinceTemporalType
is deprecatedsinceTemporalType
is deprecatedsinceTemporalType
is deprecatedsinceTemporalType
is deprecatedorg.hibernate.query.criteria.HibernateCriteriaBuilder.arrayContainsAllNullable(Expression<T[]>, T[]) org.hibernate.query.criteria.HibernateCriteriaBuilder.arrayContainsAllNullable(T[], Expression<T[]>) This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(Subquery, org.hibernate.query.common.JoinType)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(Subquery, org.hibernate.query.common.JoinType, boolean)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(Class, org.hibernate.query.common.JoinType)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(EntityDomainType, org.hibernate.query.common.JoinType)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.join(JpaCteCriteria, org.hibernate.query.common.JoinType)
This method is a layer-breaker, leaking the SQM typeSqmJoinType
onto an API. It will be removed. UseJpaFrom.joinLateral(Subquery, org.hibernate.query.common.JoinType)
No longer calledUseQuery.setEntityGraph(EntityGraph, GraphSemantic)
which is more type safeUseQuery.setEntityGraph(EntityGraph, GraphSemantic)
which is more type safeUseQuery.setEntityGraph(EntityGraph, GraphSemantic)
which is more type safeThe overloaded formQueryProducer.createQuery(String, Class)
which takes a result type is strongly recommended in preference to this method, since it returns a typedQuery
object, and because it is able to use the given result type to infer theselect
list, and even sometimes thefrom
clause. Alternatively,QueryProducer.createSelectionQuery(String, Class)
is preferred for queries, andQueryProducer.createMutationQuery(String)
for insert, update, and delete statements.The overloaded formQueryProducer.createSelectionQuery(String, Class)
which takes a result type is strongly recommended in preference to this method, since it returns a typedSelectionQuery
object, and because it is able to use the given result type to infer theselect
list, and even sometimes thefrom
clause.SinceImmutableEntityUpdateQueryHandlingMode
is deprecated. UseQueryEngineOptions.allowImmutableEntityUpdate()
instead.org.hibernate.query.sql.spi.NativeQueryImplementor.setParameter(Parameter<Date>, Date, TemporalType) ImplementArgumentsValidator.validate(List, String, BindingContext)
insteadUseSqmPathSource.findSubPathSource(String, boolean)
insteadUse #SqmPathSource.getSubPathSource(String, boolean)
insteaduseTypedParameterValue.type
useTypedParameterValue.type
useTypedParameterValue.value
Because the semantics of this method may change in a future release. UseSession.find(Class, Object)
instead.The semantics of this method may change in a future release. UseSession.find(Class, Object, LockMode)
instead.The semantics of this method may change in a future release. UseSession.find(Class, Object, LockOptions)
instead.The semantics of this method may change in a future release. UseSessionFactory.createGraphForDynamicEntity(String)
together withEntityManager.find(EntityGraph, Object, FindOption...)
to loaddynamic entities
.The semantics of this method may change in a future release.The semantics of this method may change in a future release.With no real replacement. For some use cases tryStatelessSession.upsert(Object)
.With no real replacement. For some use cases tryStatelessSession.upsert(Object)
.This operation exposes the SPI typePhysicalConnectionHandlingMode
and is therefore a layer-breaker. UseSessionBuilder.connectionHandling(ConnectionAcquisitionMode, ConnectionReleaseMode)
instead.This operation exposes the SPI typeStatementInspector
and is therefore a layer-breaker. UseSessionBuilder.statementInspector(UnaryOperator)
instead.UseSessionBuilder.tenantIdentifier(Object)
insteadThere is no plan to remove this operation, but its use should be avoided sinceFilterDefinition
is an SPI type, and so this operation is a layer-breaker.There is no plan to remove this operation, but its use should be avoided sinceSessionFactoryOptions
is an SPI type, and so this operation is a layer-breaker.No longer calledWill be removed. Use the other methods to visit each operation.Will be removed. Use the other methods to visit each operation.The existence of this method encourages people to pass around references to the SessionFactoryImplementor when they don't need itThis operation exposes the SPI typeStatementInspector
and is therefore a layer-breaker. UseStatelessSessionBuilder.statementInspector(UnaryOperator)
instead.UseStatelessSessionBuilder.tenantIdentifier(Object)
insteadNo longer supportedUseNonIdentifierAttribute.isDirtyCheckable()
insteadnot appropriate for named enum or array typesnot appropriate for named enum or array typesnot appropriate for named enum or array types, useDdlType.getTypeName(Size, Type, DdlTypeRegistry)
insteadnot appropriate for named enum or array types, useDdlType.getTypeName(Size, Type, DdlTypeRegistry)
insteadnot appropriate for named enum or array types, useDdlTypeRegistry.getTypeName(int, Size, Type)
insteadnot appropriate for named enum or array types, useDdlTypeRegistry.getTypeName(int, Size, Type)
insteadThis operation is not very typesafe, and we're migrating away from its useThis simply isn't a very sensible place to hang theServiceRegistry
This operation is not very typesafe, and we're migrating away from its useIs not called anymore
-
Deprecated ConstructorsConstructorDescriptionused by Quarkusprovide a
DatabaseVersion
currently used by Hibernate Reactive This version of the constructor should handle the case in which we do actually have the option to access theDatabaseMetaData
, but since Hibernate Reactive is currently not making use of it we take a shortcut.in favor ofSize(Integer, Integer, Long)
in favor ofSize(Integer, Integer, Long)
useRefreshEvent(Object, LockOptions, EventSource)
instead.use the default constructor insteaduseStandardStack(Object)
instead.this constructor does not carry information about the query which caused the failurethis constructor does not carry information about the query which caused the failurethis constructor does not carry information about the query which caused the failurewas previously used for HQL. UseSqmUpdateStatement(NodeBuilder)
insteadwas previously used for Criteria. UseSqmUpdateStatement(Class, SqmCriteriaNodeBuilder)
instead.this constructor does not carry information about the query which caused the failurethis constructor does not carry information about the query which caused the failurethis constructor does not carry information about the query which caused the failure
-
Deprecated Enum Constants
-
Deprecated Annotation Interface ElementsAnnotation Interface ElementDescriptionuse
GenericGenerator.type()
for typesafetyuseSQLDelete.verify()
with anExpectation
classuseSQLDeleteAll.verify()
with anExpectation
classuseSQLInsert.verify()
with anExpectation
classuseSQLUpdate.verify()
with anExpectation
classUse@AuditOverride(forClass=SomeEntity.class)
instead.
AttributeAccessor.strategy()