Javadoc for SessionFactoryBuilder and lots of crossrefs
This commit is contained in:
parent
77137f7407
commit
f388b2fb2b
|
@ -19,6 +19,7 @@ import org.hibernate.type.Type;
|
|||
* The purpose of this contract then is to allow applications such a plug-in point.
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#CUSTOM_ENTITY_DIRTINESS_STRATEGY
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyCustomEntityDirtinessStrategy(CustomEntityDirtinessStrategy)
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
|
|
|
@ -9,6 +9,8 @@ package org.hibernate;
|
|||
/**
|
||||
* Contract for resolving an entity-name from a given entity instance.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#addEntityNameResolver(EntityNameResolver...)
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public interface EntityNameResolver {
|
||||
|
|
|
@ -37,6 +37,9 @@ import org.hibernate.type.Type;
|
|||
* @see SharedSessionBuilder#interceptor()
|
||||
* @see org.hibernate.cfg.Configuration#setInterceptor(Interceptor)
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyInterceptor(Interceptor)
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyStatelessInterceptor(Class)
|
||||
*
|
||||
* @author Gavin King
|
||||
*/
|
||||
public interface Interceptor {
|
||||
|
|
|
@ -14,6 +14,9 @@ import java.io.Serializable;
|
|||
* A {@code SessionFactoryObserver} may be registered using the configuration property
|
||||
* {@value org.hibernate.cfg.AvailableSettings#SESSION_FACTORY_OBSERVER}.
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#SESSION_FACTORY_OBSERVER
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#addSessionFactoryObservers(SessionFactoryObserver...)
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public interface SessionFactoryObserver extends Serializable {
|
||||
|
|
|
@ -8,7 +8,6 @@ package org.hibernate.boot;
|
|||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.hibernate.ConnectionReleaseMode;
|
||||
import org.hibernate.CustomEntityDirtinessStrategy;
|
||||
import org.hibernate.EntityNameResolver;
|
||||
import org.hibernate.Interceptor;
|
||||
|
@ -35,31 +34,35 @@ import org.hibernate.resource.jdbc.spi.StatementInspector;
|
|||
@SuppressWarnings("UnusedReturnValue")
|
||||
public interface SessionFactoryBuilder {
|
||||
/**
|
||||
* Apply a Bean Validation ValidatorFactory to the SessionFactory being built.
|
||||
* Specifies a Bean Validation {@link jakarta.validation.ValidatorFactory}.
|
||||
*
|
||||
* NOTE : De-typed to avoid hard dependency on Bean Validation jar at runtime.
|
||||
* @apiNote De-typed to avoid a hard dependency on the Bean Validation jar
|
||||
*
|
||||
* @param validatorFactory The Bean Validation ValidatorFactory to use
|
||||
* @param validatorFactory The Bean Validation {@code ValidatorFactory} to use
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#JAKARTA_VALIDATION_FACTORY
|
||||
*/
|
||||
SessionFactoryBuilder applyValidatorFactory(Object validatorFactory);
|
||||
|
||||
/**
|
||||
* Apply a CDI BeanManager to the SessionFactory being built.
|
||||
* Specifies a CDI {@link jakarta.enterprise.inject.spi.BeanManager}.
|
||||
*
|
||||
* NOTE : De-typed to avoid hard dependency on CDI jar at runtime.
|
||||
* @apiNote De-typed to avoid a hard dependency on the CDI jar
|
||||
*
|
||||
* @param beanManager The CDI BeanManager to use
|
||||
* @param beanManager The CDI {@code BeanManager} to use
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#JAKARTA_CDI_BEAN_MANAGER
|
||||
*/
|
||||
SessionFactoryBuilder applyBeanManager(Object beanManager);
|
||||
|
||||
/**
|
||||
* Applies a SessionFactory name.
|
||||
* Specifies a name for the {@link SessionFactory}.
|
||||
*
|
||||
* @param sessionFactoryName The name to use for the SessionFactory being built
|
||||
* @param sessionFactoryName The name to use
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
|
@ -68,7 +71,8 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyName(String sessionFactoryName);
|
||||
|
||||
/**
|
||||
* Applies a SessionFactory name.
|
||||
* Specifies that the {@link SessionFactory} should be registered in JNDI,
|
||||
* under the name specified using {@link #applyName(String)}.
|
||||
*
|
||||
* @param isJndiName {@code true} indicates that the name specified in
|
||||
* {@link #applyName} will be used for binding the SessionFactory into JNDI.
|
||||
|
@ -80,7 +84,8 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyNameAsJndiName(boolean isJndiName);
|
||||
|
||||
/**
|
||||
* Applies whether Sessions should be automatically closed at the end of the transaction.
|
||||
* Specifies whether {@link org.hibernate.Session}s should be automatically
|
||||
* closed at the end of the transaction.
|
||||
*
|
||||
* @param enabled {@code true} indicates they should be auto-closed; {@code false} indicates not.
|
||||
*
|
||||
|
@ -91,7 +96,8 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyAutoClosing(boolean enabled);
|
||||
|
||||
/**
|
||||
* Applies whether Sessions should be automatically flushed at the end of the transaction.
|
||||
* Applies whether {@link org.hibernate.Session}s should be automatically
|
||||
* flushed at the end of the transaction.
|
||||
*
|
||||
* @param enabled {@code true} indicates they should be auto-flushed; {@code false} indicates not.
|
||||
*
|
||||
|
@ -102,7 +108,7 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyAutoFlushing(boolean enabled);
|
||||
|
||||
/**
|
||||
* Applies whether statistics gathering is enabled.
|
||||
* Specifies whether statistics gathering is enabled.
|
||||
*
|
||||
* @param enabled {@code true} indicates that statistics gathering should be enabled; {@code false} indicates not.
|
||||
*
|
||||
|
@ -113,8 +119,9 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyStatisticsSupport(boolean enabled);
|
||||
|
||||
/**
|
||||
* Names an interceptor to be applied to the SessionFactory, which in turn means it will be used by all
|
||||
* Sessions unless one is explicitly specified in {@link org.hibernate.SessionBuilder#interceptor}
|
||||
* Specifies an {@link Interceptor} associated with the {@link SessionFactory},
|
||||
* which will be used by all sessions unless an interceptor is explicitly
|
||||
* specified using {@link org.hibernate.SessionBuilder#interceptor}.
|
||||
*
|
||||
* @param interceptor The interceptor
|
||||
*
|
||||
|
@ -125,8 +132,10 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyInterceptor(Interceptor interceptor);
|
||||
|
||||
/**
|
||||
* Names an interceptor Class to be applied to the SessionFactory, which in turn means it will be used by all
|
||||
* Sessions unless one is explicitly specified in {@link org.hibernate.SessionBuilder#interceptor}
|
||||
* Specifies an interceptor {@link Class} associated with the
|
||||
* {@link SessionFactory}, which is used to instantiate a new interceptor
|
||||
* for each session, unless an interceptor is explicitly specified using
|
||||
* {@link org.hibernate.SessionBuilder#interceptor}.
|
||||
*
|
||||
* @param statelessInterceptorClass The interceptor class
|
||||
*
|
||||
|
@ -137,9 +146,10 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyStatelessInterceptor(Class<? extends Interceptor> statelessInterceptorClass);
|
||||
|
||||
/**
|
||||
* Names a {@link Supplier} instance which is used to retrieve the interceptor to be applied to the SessionFactory,
|
||||
* which in turn means it will be used by all Sessions unless one is explicitly specified in
|
||||
* {@link org.hibernate.SessionBuilder#interceptor}
|
||||
* Specifies an interceptor {@link Supplier} associated with the
|
||||
* {@link SessionFactory}, which is used to obtain an interceptor for
|
||||
* each session, unless an interceptor is explicitly specified using
|
||||
* {@link org.hibernate.SessionBuilder#interceptor}.
|
||||
*
|
||||
* @param statelessInterceptorSupplier {@link Supplier} instance which is used to retrieve the interceptor
|
||||
*
|
||||
|
@ -150,8 +160,10 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyStatelessInterceptor(Supplier<? extends Interceptor> statelessInterceptorSupplier);
|
||||
|
||||
/**
|
||||
* Names a StatementInspector to be applied to the SessionFactory, which in turn means it will be used by all
|
||||
* Sessions unless one is explicitly specified in {@link org.hibernate.SessionBuilder#statementInspector}
|
||||
* Specifies a {@link StatementInspector} associated with the
|
||||
* {@link SessionFactory}, which will be used by all sessions unless a
|
||||
* statement inspector is explicitly specified using
|
||||
* {@link org.hibernate.SessionBuilder#statementInspector}
|
||||
*
|
||||
* @param statementInspector The StatementInspector
|
||||
*
|
||||
|
@ -162,18 +174,19 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyStatementInspector(StatementInspector statementInspector);
|
||||
|
||||
/**
|
||||
* Specifies one or more observers to be applied to the SessionFactory. Can be called multiple times to add
|
||||
* additional observers.
|
||||
* Specifies one or more {@linkplain SessionFactoryObserver observers}.
|
||||
* May be called multiple times to add additional observers.
|
||||
*
|
||||
* @param observers The observers to add
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#SESSION_FACTORY_OBSERVER
|
||||
*/
|
||||
SessionFactoryBuilder addSessionFactoryObservers(SessionFactoryObserver... observers);
|
||||
|
||||
/**
|
||||
* Specifies a custom entity dirtiness strategy to be applied to the SessionFactory. See the contract
|
||||
* of {@link CustomEntityDirtinessStrategy} for details.
|
||||
* Specifies a {@link CustomEntityDirtinessStrategy}.
|
||||
*
|
||||
* @param strategy The custom strategy to be used.
|
||||
*
|
||||
|
@ -184,8 +197,8 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyCustomEntityDirtinessStrategy(CustomEntityDirtinessStrategy strategy);
|
||||
|
||||
/**
|
||||
* Specifies one or more entity name resolvers to be applied to the SessionFactory (see the {@link EntityNameResolver}
|
||||
* contract for more information.. Can be called multiple times to add additional resolvers..
|
||||
* Specifies one or more {@linkplain EntityNameResolver entity name resolvers}.
|
||||
* May be called multiple times to add additional resolvers.
|
||||
*
|
||||
* @param entityNameResolvers The entityNameResolvers to add
|
||||
*
|
||||
|
@ -194,8 +207,9 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder addEntityNameResolver(EntityNameResolver... entityNameResolvers);
|
||||
|
||||
/**
|
||||
* Names the {@link EntityNotFoundDelegate} to be applied to the SessionFactory. EntityNotFoundDelegate is a
|
||||
* strategy that accounts for different exceptions thrown between Hibernate and JPA when an entity cannot be found.
|
||||
* Specifies an {@link EntityNotFoundDelegate}. An {@code EntityNotFoundDelegate}
|
||||
* is a strategy that accounts for different exceptions thrown between Hibernate
|
||||
* and JPA when an entity cannot be found.
|
||||
*
|
||||
* @param entityNotFoundDelegate The delegate/strategy to use.
|
||||
*
|
||||
|
@ -215,7 +229,8 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyIdentifierRollbackSupport(boolean enabled);
|
||||
|
||||
/**
|
||||
* Should attributes using columns marked as not-null be checked (by Hibernate) for nullness?
|
||||
* Should attributes using columns marked as not-null be checked (by Hibernate)
|
||||
* for nullness, or should this be left as a job for the database?
|
||||
*
|
||||
* @param enabled {@code true} indicates that Hibernate should perform nullness checking; {@code false} indicates
|
||||
* it should not.
|
||||
|
@ -227,10 +242,11 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyNullabilityChecking(boolean enabled);
|
||||
|
||||
/**
|
||||
* Should the application be allowed to initialize uninitialized lazy state outside the bounds of a transaction?
|
||||
* Should the application be allowed to initialize uninitialized lazy state
|
||||
* outside the bounds of a transaction?
|
||||
*
|
||||
* @param enabled {@code true} indicates initialization outside the transaction should be allowed; {@code false}
|
||||
* indicates it should not.
|
||||
* @param enabled {@code true} indicates initialization outside the transaction
|
||||
* should be allowed; {@code false} indicates it should not.
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
|
@ -255,16 +271,16 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyBatchFetchStyle(BatchFetchStyle style);
|
||||
|
||||
/**
|
||||
* Should entity Loaders be generated immediately? Or should the creation
|
||||
* be delayed until first need?
|
||||
* Should entity {@linkplain org.hibernate.loader.ast.spi.Loader loaders} be
|
||||
* generated immediately? Or should the creation be delayed until first need?
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#DELAY_ENTITY_LOADER_CREATIONS
|
||||
*/
|
||||
SessionFactoryBuilder applyDelayedEntityLoaderCreations(boolean delay);
|
||||
|
||||
/**
|
||||
* Allows specifying a default batch-fetch size for all entities and collections
|
||||
* which do not otherwise specify a batch-fetch size.
|
||||
* Specifies a default batch fetch size for all entities and collections which
|
||||
* do not otherwise specify a batch fetch size.
|
||||
*
|
||||
* @param size The size to use for batch fetching for entities/collections which
|
||||
* do not specify an explicit batch fetch size.
|
||||
|
@ -276,8 +292,9 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyDefaultBatchFetchSize(int size);
|
||||
|
||||
/**
|
||||
* Apply a limit to the depth Hibernate will use for outer joins. Note that this is different than an
|
||||
* overall limit on the number of joins...
|
||||
* Apply a limit to the depth Hibernate will use for outer joins.
|
||||
* <p>
|
||||
* Note that this is different to an overall limit on the number of joins.
|
||||
*
|
||||
* @param depth The depth for limiting joins.
|
||||
*
|
||||
|
@ -288,8 +305,8 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyMaximumFetchDepth(int depth);
|
||||
|
||||
/**
|
||||
* Apply a null precedence (NULLS FIRST, NULLS LAST) to be applied order-by clauses rendered into
|
||||
* SQL queries.
|
||||
* Apply a null precedence (NULLS FIRST, NULLS LAST) to be applied to
|
||||
* order by clauses rendered in SQL queries.
|
||||
*
|
||||
* @param nullPrecedence The default null precedence to use.
|
||||
*
|
||||
|
@ -300,9 +317,11 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyDefaultNullPrecedence(NullPrecedence nullPrecedence);
|
||||
|
||||
/**
|
||||
* Apply whether ordering of inserts should be enabled. This allows more efficient SQL
|
||||
* generation via the use of batching for the inserts; the cost is that the determination of the
|
||||
* ordering is far more inefficient than not ordering.
|
||||
* Specify whether ordering of inserts should be enabled.
|
||||
* <p>
|
||||
* This allows more efficient SQL execution via the use of batching
|
||||
* for the inserts; the cost is that the determination of the ordering
|
||||
* is far less efficient than not ordering.
|
||||
*
|
||||
* @param enabled {@code true} indicates that ordering should be enabled; {@code false} indicates not
|
||||
*
|
||||
|
@ -313,9 +332,11 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyOrderingOfInserts(boolean enabled);
|
||||
|
||||
/**
|
||||
* Apply whether ordering of updates should be enabled. This allows more efficient SQL
|
||||
* generation via the use of batching for the updates; the cost is that the determination of the
|
||||
* ordering is far more inefficient than not ordering.
|
||||
* Specify whether ordering of updates should be enabled.
|
||||
* <p>
|
||||
* This allows more efficient SQL execution via the use of batching for
|
||||
* the updates; the cost is that the determination of the ordering is far
|
||||
* less efficient than not ordering.
|
||||
*
|
||||
* @param enabled {@code true} indicates that ordering should be enabled; {@code false} indicates not
|
||||
*
|
||||
|
@ -326,7 +347,7 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyOrderingOfUpdates(boolean enabled);
|
||||
|
||||
/**
|
||||
* Apply the form of multi-tenancy used by the application
|
||||
* Specifies whether multi-tenancy is enabled
|
||||
*
|
||||
* @param enabled True if multi-tenancy in use.
|
||||
*
|
||||
|
@ -335,8 +356,9 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyMultiTenancy(boolean enabled);
|
||||
|
||||
/**
|
||||
* Specifies a strategy for resolving the notion of a "current" tenant-identifier when using multi-tenancy
|
||||
* together with current sessions
|
||||
* Specifies a {@link CurrentTenantIdentifierResolver} that is responsible for
|
||||
* resolving the current tenant identifier when
|
||||
* {@link org.hibernate.SessionFactory#getCurrentSession()} is used.
|
||||
*
|
||||
* @param resolver The resolution strategy to use.
|
||||
*
|
||||
|
@ -347,8 +369,10 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver resolver);
|
||||
|
||||
/**
|
||||
* If using the built-in Hibernate JTA-based TransactionCoordinator/Builder, should it track JTA
|
||||
* transactions by thread in an attempt to detect timeouts?
|
||||
* If using the built-in JTA-based
|
||||
* {@link org.hibernate.resource.transaction.spi.TransactionCoordinator} or
|
||||
* {@link org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder},
|
||||
* should it track JTA transactions by thread in an attempt to detect timeouts?
|
||||
*
|
||||
* @param enabled {@code true} indicates we should track by thread; {@code false} indicates not
|
||||
*
|
||||
|
@ -359,11 +383,15 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyJtaTrackingByThread(boolean enabled);
|
||||
|
||||
/**
|
||||
* If using the built-in Hibernate JTA-based TransactionCoordinator/Builder, should it prefer to use
|
||||
* {@link jakarta.transaction.UserTransaction} over {@link jakarta.transaction.Transaction}?
|
||||
* If using the built-in JTA-based
|
||||
* {@link org.hibernate.resource.transaction.spi.TransactionCoordinator} or
|
||||
* {@link org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder},
|
||||
* should it prefer to use {@link jakarta.transaction.UserTransaction} in
|
||||
* preference to {@link jakarta.transaction.Transaction}?
|
||||
*
|
||||
* @param preferUserTransactions {@code true} indicates we should prefer {@link jakarta.transaction.UserTransaction};
|
||||
* {@code false} indicates we should prefer {@link jakarta.transaction.Transaction}
|
||||
* @param preferUserTransactions {@code true} indicates we should prefer
|
||||
* {@link jakarta.transaction.UserTransaction}; {@code false} indicates we
|
||||
* should prefer {@link jakarta.transaction.Transaction}
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
|
@ -385,8 +413,8 @@ public interface SessionFactoryBuilder {
|
|||
/**
|
||||
* Should second level caching support be enabled?
|
||||
*
|
||||
* @param enabled {@code true} indicates we should enable the use of second level caching; {@code false}
|
||||
* indicates we should disable the use of second level caching.
|
||||
* @param enabled {@code true} indicates we should enable the use of second level caching;
|
||||
* {@code false} indicates we should disable the use of second level caching.
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
|
@ -407,9 +435,9 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyQueryCacheSupport(boolean enabled);
|
||||
|
||||
/**
|
||||
* Specifies a QueryCacheFactory to use for building query cache handlers.
|
||||
* Specifies a {@link org.hibernate.cache.spi.TimestampsCacheFactory}.
|
||||
*
|
||||
* @param factory The QueryCacheFactory to use
|
||||
* @param factory The {@link org.hibernate.cache.spi.TimestampsCacheFactory} to use
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
|
@ -418,7 +446,7 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applyTimestampsCacheFactory(TimestampsCacheFactory factory);
|
||||
|
||||
/**
|
||||
* Apply a prefix to prepended to all cache region names for this SessionFactory.
|
||||
* Specify a prefix to prepended to all cache region names.
|
||||
*
|
||||
* @param prefix The prefix.
|
||||
*
|
||||
|
@ -557,21 +585,24 @@ public interface SessionFactoryBuilder {
|
|||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#USE_GET_GENERATED_KEYS
|
||||
* @see org.hibernate.cfg.AvailableSettings#STATEMENT_FETCH_SIZE
|
||||
* @see java.sql.Statement#setFetchSize(int)
|
||||
*/
|
||||
SessionFactoryBuilder applyJdbcFetchSize(int size);
|
||||
|
||||
/**
|
||||
* Apply the specified handling mode for JDBC connections
|
||||
* Specifies the {@linkplain PhysicalConnectionHandlingMode connection handling mode}
|
||||
* for JDBC connections.
|
||||
*
|
||||
* @param connectionHandlingMode The handling mode to apply
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#CONNECTION_HANDLING
|
||||
* @see PhysicalConnectionHandlingMode
|
||||
*
|
||||
* @see org.hibernate.ConnectionAcquisitionMode
|
||||
* @see ConnectionReleaseMode
|
||||
* @see org.hibernate.ConnectionReleaseMode
|
||||
*/
|
||||
SessionFactoryBuilder applyConnectionHandlingMode(PhysicalConnectionHandlingMode connectionHandlingMode);
|
||||
|
||||
|
@ -592,10 +623,11 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applySqlComments(boolean enabled);
|
||||
|
||||
/**
|
||||
* Apply a SQLFunction to the underlying {@link org.hibernate.query.sqm.function.SqmFunctionRegistry}.
|
||||
* Register a {@link SqmFunctionDescriptor SQL function} with the underlying
|
||||
* {@link org.hibernate.query.sqm.function.SqmFunctionRegistry}.
|
||||
*
|
||||
* @param registrationName The name to register it under.
|
||||
* @param functionDescriptor The SQLFunction impl
|
||||
* @param registrationName The function name to register it under
|
||||
* @param functionDescriptor The {@link SqmFunctionDescriptor}
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
|
@ -604,7 +636,8 @@ public interface SessionFactoryBuilder {
|
|||
SessionFactoryBuilder applySqlFunction(String registrationName, SqmFunctionDescriptor functionDescriptor);
|
||||
|
||||
/**
|
||||
* Should collections be included in the default fetch group when bytecode enhancement is used?
|
||||
* Should collections be included in the default fetch group when bytecode
|
||||
* enhancement is used?
|
||||
*
|
||||
* @param enabled {@code true} collections should be included
|
||||
*
|
||||
|
@ -612,35 +645,46 @@ public interface SessionFactoryBuilder {
|
|||
*/
|
||||
SessionFactoryBuilder applyCollectionsInDefaultFetchGroup(boolean enabled);
|
||||
|
||||
/**
|
||||
* @see org.hibernate.cfg.AvailableSettings#ALLOW_UPDATE_OUTSIDE_TRANSACTION
|
||||
*/
|
||||
SessionFactoryBuilder allowOutOfTransactionUpdateOperations(boolean allow);
|
||||
|
||||
/**
|
||||
* Should resources held by {@link jakarta.persistence.EntityManager} instance be released immediately on close?
|
||||
* Should resources held by an {@link jakarta.persistence.EntityManager} be
|
||||
* released immediately on close?
|
||||
* <p/>
|
||||
* The other option is to release them as part of an after-transaction callback.
|
||||
*
|
||||
* The other option is to release them as part of an after transaction callback.
|
||||
*/
|
||||
SessionFactoryBuilder enableReleaseResourcesOnCloseEnabled(boolean enable);
|
||||
|
||||
|
||||
/**
|
||||
* @see JpaCompliance#isJpaQueryComplianceEnabled()
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#JPA_QUERY_COMPLIANCE
|
||||
*/
|
||||
SessionFactoryBuilder enableJpaQueryCompliance(boolean enabled);
|
||||
|
||||
/**
|
||||
* @see JpaCompliance#isJpaQueryComplianceEnabled()
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#JPA_ORDER_BY_MAPPING_COMPLIANCE
|
||||
*/
|
||||
SessionFactoryBuilder enableJpaOrderByMappingCompliance(boolean enabled);
|
||||
|
||||
/**
|
||||
* @see JpaCompliance#isJpaTransactionComplianceEnabled()
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#JPA_TRANSACTION_COMPLIANCE
|
||||
*/
|
||||
SessionFactoryBuilder enableJpaTransactionCompliance(boolean enabled);
|
||||
|
||||
/**
|
||||
* @see JpaCompliance#isJpaListComplianceEnabled()
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#JPA_LIST_COMPLIANCE
|
||||
*
|
||||
* @deprecated Use {@link org.hibernate.cfg.AvailableSettings#DEFAULT_LIST_SEMANTICS} instead
|
||||
*/
|
||||
@Deprecated( since = "6.0" )
|
||||
|
@ -648,6 +692,8 @@ public interface SessionFactoryBuilder {
|
|||
|
||||
/**
|
||||
* @see JpaCompliance#isJpaClosedComplianceEnabled()
|
||||
*
|
||||
* @see org.hibernate.cfg.AvailableSettings#JPA_CLOSED_COMPLIANCE
|
||||
*/
|
||||
SessionFactoryBuilder enableJpaClosedCompliance(boolean enabled);
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import org.hibernate.boot.cfgxml.internal.ConfigLoader;
|
|||
import org.hibernate.boot.cfgxml.spi.LoadedConfig;
|
||||
import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;
|
||||
import org.hibernate.boot.registry.internal.StandardServiceRegistryImpl;
|
||||
import org.hibernate.cfg.AvailableSettings;
|
||||
import org.hibernate.cfg.Environment;
|
||||
import org.hibernate.integrator.spi.Integrator;
|
||||
import org.hibernate.integrator.spi.IntegratorService;
|
||||
|
@ -33,6 +34,8 @@ import static org.hibernate.boot.cfgxml.spi.CfgXmlAccessService.LOADED_CONFIG_KE
|
|||
|
||||
/**
|
||||
* Builder for standard {@link ServiceRegistry} instances.
|
||||
* <p>
|
||||
* Configuration properties are enumerated by {@link AvailableSettings}.
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*
|
||||
|
|
|
@ -8,12 +8,28 @@ package org.hibernate.cfg;
|
|||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.hibernate.CustomEntityDirtinessStrategy;
|
||||
import org.hibernate.Interceptor;
|
||||
import org.hibernate.SessionFactoryObserver;
|
||||
import org.hibernate.cache.spi.TimestampsCacheFactory;
|
||||
import org.hibernate.context.spi.CurrentTenantIdentifierResolver;
|
||||
import org.hibernate.jpa.LegacySpecHints;
|
||||
import org.hibernate.query.spi.QueryPlan;
|
||||
import org.hibernate.query.sqm.NullPrecedence;
|
||||
import org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode;
|
||||
import org.hibernate.resource.jdbc.spi.StatementInspector;
|
||||
|
||||
/**
|
||||
* Enumerates the configuration properties supported by Hibernate, including
|
||||
* properties defined by the JPA specification.
|
||||
* <p>
|
||||
* The settings defined here may be specified at configuration time:
|
||||
* <ul>
|
||||
* <li>in a configuration file, for example, in {@code persistence.xml} or
|
||||
* {@code hibernate.cfg.xml},
|
||||
* <li>via {@link Configuration#setProperty(String, String)}, or
|
||||
* <li>via {@link org.hibernate.boot.registry.StandardServiceRegistryBuilder#applySetting(String, Object)}.
|
||||
* </ul>
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
|
@ -130,6 +146,8 @@ public interface AvailableSettings {
|
|||
|
||||
/**
|
||||
* Used to pass along any discovered {@link jakarta.validation.ValidatorFactory}.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyValidatorFactory(Object)
|
||||
*/
|
||||
String JAKARTA_VALIDATION_FACTORY = "jakarta.persistence.validation.factory";
|
||||
|
||||
|
@ -194,6 +212,8 @@ public interface AvailableSettings {
|
|||
* This setting is used to configure access to the {@code BeanManager},
|
||||
* either directly, or via
|
||||
* {@link org.hibernate.resource.beans.container.spi.ExtendedBeanManager}.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyBeanManager(Object)
|
||||
*/
|
||||
String JAKARTA_CDI_BEAN_MANAGER = "jakarta.persistence.bean.manager";
|
||||
|
||||
|
@ -345,6 +365,8 @@ public interface AvailableSettings {
|
|||
* By default, Hibernate calls {@link java.sql.Connection#setAutoCommit(boolean)} on
|
||||
* newly-obtained connections.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyConnectionProviderDisablesAutoCommit(boolean)
|
||||
*
|
||||
* @since 5.2.10
|
||||
*/
|
||||
String CONNECTION_PROVIDER_DISABLES_AUTOCOMMIT= "hibernate.connection.provider_disables_autocommit";
|
||||
|
@ -520,6 +542,8 @@ public interface AvailableSettings {
|
|||
* @see org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform#retrieveUserTransaction
|
||||
* @see org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform#retrieveTransactionManager
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyPreferUserTransactions(boolean)
|
||||
*
|
||||
* @since 5.0
|
||||
*/
|
||||
String PREFER_USER_TRANSACTION = "hibernate.jta.prefer_user_transaction";
|
||||
|
@ -819,6 +843,7 @@ public interface AvailableSettings {
|
|||
*
|
||||
* @see #SESSION_FACTORY_NAME_IS_JNDI
|
||||
* @see org.hibernate.internal.SessionFactoryRegistry
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyName(String)
|
||||
*/
|
||||
String SESSION_FACTORY_NAME = "hibernate.session_factory_name";
|
||||
|
||||
|
@ -833,6 +858,7 @@ public interface AvailableSettings {
|
|||
* not want JNDI to be used.
|
||||
*
|
||||
* @see #SESSION_FACTORY_NAME
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyNameAsJndiName(boolean)
|
||||
*/
|
||||
String SESSION_FACTORY_NAME_IS_JNDI = "hibernate.session_factory_name_is_jndi";
|
||||
|
||||
|
@ -853,11 +879,15 @@ public interface AvailableSettings {
|
|||
|
||||
/**
|
||||
* Specifies that comments should be added to the generated SQL.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applySqlComments(boolean)
|
||||
*/
|
||||
String USE_SQL_COMMENTS = "hibernate.use_sql_comments";
|
||||
|
||||
/**
|
||||
* Specifies the maximum depth of nested outer join fetching.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyMaximumFetchDepth(int)
|
||||
*/
|
||||
String MAX_FETCH_DEPTH = "hibernate.max_fetch_depth";
|
||||
|
||||
|
@ -865,6 +895,7 @@ public interface AvailableSettings {
|
|||
* Specifies the default batch size for batch fetching.
|
||||
*
|
||||
* @see org.hibernate.annotations.BatchSize
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyDefaultBatchFetchSize(int)
|
||||
*/
|
||||
String DEFAULT_BATCH_FETCH_SIZE = "hibernate.default_batch_fetch_size";
|
||||
|
||||
|
@ -872,6 +903,8 @@ public interface AvailableSettings {
|
|||
* When enabled, specifies that JDBC scrollable {@code ResultSet}s may be used.
|
||||
* This property is only necessary when there is no {@code ConnectionProvider},
|
||||
* that is, when the client is supplying JDBC connections.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyScrollableResultsSupport(boolean)
|
||||
*/
|
||||
String USE_SCROLLABLE_RESULTSET = "hibernate.jdbc.use_scrollable_resultset";
|
||||
|
||||
|
@ -883,6 +916,7 @@ public interface AvailableSettings {
|
|||
* the JDBC driver supports {@code getGeneratedKeys()}.
|
||||
*
|
||||
* @see java.sql.PreparedStatement#getGeneratedKeys
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyGetGeneratedKeysSupport(boolean)
|
||||
*/
|
||||
String USE_GET_GENERATED_KEYS = "hibernate.jdbc.use_get_generated_keys";
|
||||
|
||||
|
@ -892,6 +926,7 @@ public interface AvailableSettings {
|
|||
* default settings will be used.
|
||||
*
|
||||
* @see java.sql.ResultSet#setFetchSize(int)
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyJdbcFetchSize(int)
|
||||
*/
|
||||
String STATEMENT_FETCH_SIZE = "hibernate.jdbc.fetch_size";
|
||||
|
||||
|
@ -899,6 +934,7 @@ public interface AvailableSettings {
|
|||
* Specifies the maximum JDBC batch size. A nonzero value enables batch updates.
|
||||
*
|
||||
* @see java.sql.PreparedStatement#executeBatch()
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyJdbcBatchSize(int)
|
||||
*/
|
||||
String STATEMENT_BATCH_SIZE = "hibernate.jdbc.batch_size";
|
||||
|
||||
|
@ -910,6 +946,8 @@ public interface AvailableSettings {
|
|||
/**
|
||||
* When enabled, specifies that {@link jakarta.persistence.Version versioned}
|
||||
* data should be included in batching.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyJdbcBatchingForVersionedEntities(boolean)
|
||||
*/
|
||||
String BATCH_VERSIONED_DATA = "hibernate.jdbc.batch_versioned_data";
|
||||
|
||||
|
@ -929,12 +967,16 @@ public interface AvailableSettings {
|
|||
/**
|
||||
* When enabled, specifies that the {@link org.hibernate.Session} should be
|
||||
* closed automatically at the end of each transaction.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyAutoClosing(boolean)
|
||||
*/
|
||||
String AUTO_CLOSE_SESSION = "hibernate.transaction.auto_close_session";
|
||||
|
||||
/**
|
||||
* When enabled, specifies that automatic flushing should occur during the JTA
|
||||
* {@link jakarta.transaction.Synchronization#beforeCompletion()} callback.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyAutoFlushing(boolean)
|
||||
*/
|
||||
String FLUSH_BEFORE_COMPLETION = "hibernate.transaction.flush_before_completion";
|
||||
|
||||
|
@ -943,6 +985,7 @@ public interface AvailableSettings {
|
|||
* and release.
|
||||
*
|
||||
* @see org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyConnectionHandlingMode(PhysicalConnectionHandlingMode)
|
||||
*
|
||||
* @since 5.2
|
||||
*/
|
||||
|
@ -955,6 +998,9 @@ public interface AvailableSettings {
|
|||
*/
|
||||
String CURRENT_SESSION_CONTEXT_CLASS = "hibernate.current_session_context_class";
|
||||
|
||||
/**
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyIdentifierRollbackSupport(boolean)
|
||||
*/
|
||||
String USE_IDENTIFIER_ROLLBACK = "hibernate.use_identifier_rollback";
|
||||
|
||||
/**
|
||||
|
@ -1005,16 +1051,22 @@ public interface AvailableSettings {
|
|||
* By default, named queries are checked at startup.
|
||||
* <p>
|
||||
* Mainly intended for use in test environments.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyNamedQueryCheckingOnStartup(boolean)
|
||||
*/
|
||||
String QUERY_STARTUP_CHECKING = "hibernate.query.startup_check";
|
||||
|
||||
/**
|
||||
* Enable ordering of update statements by primary key value.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyOrderingOfUpdates(boolean)
|
||||
*/
|
||||
String ORDER_UPDATES = "hibernate.order_updates";
|
||||
|
||||
/**
|
||||
* Enable ordering of insert statements for the purpose of more efficient JDBC batching.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyOrderingOfInserts(boolean)
|
||||
*/
|
||||
String ORDER_INSERTS = "hibernate.order_inserts";
|
||||
|
||||
|
@ -1034,6 +1086,8 @@ public interface AvailableSettings {
|
|||
* Default precedence of null values in {@code ORDER BY} clause.
|
||||
* <p>
|
||||
* Supported options: {@code none} (default), {@code first}, {@code last}.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyDefaultNullPrecedence(NullPrecedence)
|
||||
*/
|
||||
String DEFAULT_NULL_ORDERING = "hibernate.order_by.default_null_ordering";
|
||||
|
||||
|
@ -1198,32 +1252,44 @@ public interface AvailableSettings {
|
|||
* By default, if the configured {@link org.hibernate.cache.spi.RegionFactory}
|
||||
* is not the {@link org.hibernate.cache.internal.NoCachingRegionFactory}, then
|
||||
* the second-level cache is enabled. Otherwise, the second-level cache is disabled.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applySecondLevelCacheSupport(boolean)
|
||||
*/
|
||||
String USE_SECOND_LEVEL_CACHE = "hibernate.cache.use_second_level_cache";
|
||||
|
||||
/**
|
||||
* Enable the query cache (disabled by default).
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyQueryCacheSupport(boolean)
|
||||
*/
|
||||
String USE_QUERY_CACHE = "hibernate.cache.use_query_cache";
|
||||
|
||||
/**
|
||||
* Specifies the {@link org.hibernate.cache.spi.TimestampsCacheFactory} to use.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyTimestampsCacheFactory(TimestampsCacheFactory)
|
||||
*/
|
||||
String QUERY_CACHE_FACTORY = "hibernate.cache.query_cache_factory";
|
||||
|
||||
/**
|
||||
* The {@code CacheProvider} region name prefix
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyCacheRegionPrefix(String)
|
||||
*/
|
||||
String CACHE_REGION_PREFIX = "hibernate.cache.region_prefix";
|
||||
|
||||
/**
|
||||
* Optimize interaction with the second-level cache to minimize writes, at the cost
|
||||
* of more frequent database reads.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyMinimalPutsForCaching(boolean)
|
||||
*/
|
||||
String USE_MINIMAL_PUTS = "hibernate.cache.use_minimal_puts";
|
||||
|
||||
/**
|
||||
* Enables the use of structured second-level cache entries.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyStructuredCacheEntries(boolean)
|
||||
*/
|
||||
String USE_STRUCTURED_CACHE = "hibernate.cache.use_structured_entries";
|
||||
|
||||
|
@ -1232,6 +1298,8 @@ public interface AvailableSettings {
|
|||
* cache when an element in the {@link jakarta.persistence.ManyToOne} collection
|
||||
* is added, updated, or removed without properly managing the change on the
|
||||
* {@link jakarta.persistence.OneToMany} side.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyAutomaticEvictionOfCollectionCaches(boolean)
|
||||
*/
|
||||
String AUTO_EVICT_COLLECTION_CACHE = "hibernate.cache.auto_evict_collection_cache";
|
||||
|
||||
|
@ -1240,6 +1308,8 @@ public interface AvailableSettings {
|
|||
* applicable. This is appropriate only for immutable entities.
|
||||
* <p>
|
||||
* By default, entities are always stored in a "disassembled" form.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyDirectReferenceCaching(boolean)
|
||||
*/
|
||||
String USE_DIRECT_REFERENCE_CACHE_ENTRIES = "hibernate.cache.use_reference_entries";
|
||||
|
||||
|
@ -1273,6 +1343,8 @@ public interface AvailableSettings {
|
|||
* <p>
|
||||
* Defaults to disabled if Bean Validation is present in the classpath and
|
||||
* annotations are used, or enabled otherwise.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyNullabilityChecking(boolean)
|
||||
*/
|
||||
String CHECK_NULLABILITY = "hibernate.check_nullability";
|
||||
|
||||
|
@ -1772,6 +1844,8 @@ public interface AvailableSettings {
|
|||
/**
|
||||
* Setting to identify a {@link org.hibernate.CustomEntityDirtinessStrategy} to use.
|
||||
* May specify either a class name or an instance.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyCustomEntityDirtinessStrategy(CustomEntityDirtinessStrategy)
|
||||
*/
|
||||
String CUSTOM_ENTITY_DIRTINESS_STRATEGY = "hibernate.entity_dirtiness_strategy";
|
||||
|
||||
|
@ -1813,6 +1887,8 @@ public interface AvailableSettings {
|
|||
* <li>the name of a class that implements {@code CurrentTenantIdentifierResolver}.
|
||||
* </ul>
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver)
|
||||
*
|
||||
* @since 4.1
|
||||
*/
|
||||
String MULTI_TENANT_IDENTIFIER_RESOLVER = "hibernate.tenant_identifier_resolver";
|
||||
|
@ -1832,6 +1908,8 @@ public interface AvailableSettings {
|
|||
* should be a separate instance of {@code Interceptor} for each {@code Session},
|
||||
* use {@link #SESSION_SCOPED_INTERCEPTOR} instead.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyInterceptor(Interceptor)
|
||||
*
|
||||
* @since 5.0
|
||||
*/
|
||||
String INTERCEPTOR = "hibernate.session_factory.interceptor";
|
||||
|
@ -1851,6 +1929,9 @@ public interface AvailableSettings {
|
|||
* applied to every {@code Session} opened from the {@code SessionFactory}, but
|
||||
* unlike {@link #INTERCEPTOR}, a separate instance created for each {@code Session}.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyStatelessInterceptor(Class)
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyStatelessInterceptor(Supplier)
|
||||
*
|
||||
* @since 5.2
|
||||
*/
|
||||
String SESSION_SCOPED_INTERCEPTOR = "hibernate.session_factory.session_scoped_interceptor";
|
||||
|
@ -1865,10 +1946,15 @@ public interface AvailableSettings {
|
|||
* <li>the name of a class that implements {@code StatementInspector}.
|
||||
* </ul>
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyStatementInspector(StatementInspector)
|
||||
*
|
||||
* @since 5.0
|
||||
*/
|
||||
String STATEMENT_INSPECTOR = "hibernate.session_factory.statement_inspector";
|
||||
|
||||
/**
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyLazyInitializationOutsideTransaction(boolean)
|
||||
*/
|
||||
String ENABLE_LAZY_LOAD_NO_TRANS = "hibernate.enable_lazy_load_no_trans";
|
||||
|
||||
/**
|
||||
|
@ -1898,6 +1984,8 @@ public interface AvailableSettings {
|
|||
* this will consume more memory but ensures all necessary memory is
|
||||
* allocated right away.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyDelayedEntityLoaderCreations(boolean)
|
||||
*
|
||||
* @since 5.3
|
||||
*/
|
||||
String DELAY_ENTITY_LOADER_CREATIONS = "hibernate.loader.delay_entity_loader_creations";
|
||||
|
@ -1910,6 +1998,8 @@ public interface AvailableSettings {
|
|||
* Session is called. This can certainly have performance considerations.
|
||||
*
|
||||
* Default is {@code true} (enabled).
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyJtaTrackingByThread(boolean)
|
||||
*/
|
||||
String JTA_TRACK_BY_THREAD = "hibernate.jta.track_by_thread";
|
||||
|
||||
|
@ -1956,6 +2046,8 @@ public interface AvailableSettings {
|
|||
/**
|
||||
* When enabled, specifies that {@linkplain org.hibernate.stat.Statistics statistics}
|
||||
* should be collected.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyStatisticsSupport(boolean)
|
||||
*/
|
||||
String GENERATE_STATISTICS = "hibernate.generate_statistics";
|
||||
|
||||
|
@ -2019,6 +2111,8 @@ public interface AvailableSettings {
|
|||
* <p>
|
||||
* The default behavior is to disallow update operations outside a transaction.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#allowOutOfTransactionUpdateOperations(boolean)
|
||||
*
|
||||
* @since 5.2
|
||||
*/
|
||||
String ALLOW_UPDATE_OUTSIDE_TRANSACTION = "hibernate.allow_update_outside_transaction";
|
||||
|
@ -2110,6 +2204,7 @@ public interface AvailableSettings {
|
|||
* an {@link jakarta.persistence.EntityTransaction}.
|
||||
*
|
||||
* @see org.hibernate.jpa.spi.JpaCompliance#isJpaTransactionComplianceEnabled()
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#enableJpaTransactionCompliance(boolean)
|
||||
*
|
||||
* @since 5.3
|
||||
*/
|
||||
|
@ -2129,28 +2224,32 @@ public interface AvailableSettings {
|
|||
* useful features of HQL.
|
||||
*
|
||||
* @see org.hibernate.jpa.spi.JpaCompliance#isJpaQueryComplianceEnabled()
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#enableJpaQueryCompliance(boolean)
|
||||
*
|
||||
* @since 5.3
|
||||
*/
|
||||
String JPA_QUERY_COMPLIANCE = "hibernate.jpa.compliance.query";
|
||||
|
||||
/**
|
||||
* Controls whether Hibernate should recognize what it considers a "bag"
|
||||
* ({@link org.hibernate.collection.spi.PersistentBag}) as a list
|
||||
* ({@link org.hibernate.collection.spi.PersistentList}) or as a bag.
|
||||
* Controls whether Hibernate should treat what it would usually consider a
|
||||
* {@linkplain org.hibernate.collection.spi.PersistentBag "bag"}, that is, a
|
||||
* list with no index column, whose element order is not persistent, as a true
|
||||
* {@link org.hibernate.collection.spi.PersistentList list} with an index column
|
||||
* and a persistent element order.
|
||||
* <p>
|
||||
* If enabled, Hibernate will recognize it as a list where the
|
||||
* {@link jakarta.persistence.OrderColumn} annotation is simply missing
|
||||
* (and its defaults will apply).
|
||||
*
|
||||
* @see org.hibernate.jpa.spi.JpaCompliance#isJpaListComplianceEnabled()
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#enableJpaListCompliance(boolean)
|
||||
*
|
||||
* @since 5.3
|
||||
*
|
||||
* @deprecated Use {@link org.hibernate.cfg.AvailableSettings#DEFAULT_LIST_SEMANTICS} instead.
|
||||
* The specification is actually undefined in terms of how this should be handled. It actually
|
||||
* says that portable applications should not rely on a specific behavior in terms of a List
|
||||
* with no `@OrderColumn`
|
||||
* @deprecated Use {@link #DEFAULT_LIST_SEMANTICS} instead. The specification
|
||||
* actually leaves this behavior undefined, saying that portable applications
|
||||
* should not rely on any specific behavior for a {@link java.util.List} with
|
||||
* no {@code @OrderColumn}.
|
||||
*/
|
||||
@Deprecated( since = "6.0" )
|
||||
String JPA_LIST_COMPLIANCE = "hibernate.jpa.compliance.list";
|
||||
|
@ -2164,6 +2263,7 @@ public interface AvailableSettings {
|
|||
* references.
|
||||
*
|
||||
* @see org.hibernate.jpa.spi.JpaCompliance#isJpaOrderByMappingComplianceEnabled()
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#enableJpaOrderByMappingCompliance(boolean)
|
||||
*
|
||||
* @since 6.0
|
||||
*/
|
||||
|
@ -2180,6 +2280,7 @@ public interface AvailableSettings {
|
|||
* {@code close()} is called on an instance that was already closed.
|
||||
*
|
||||
* @see org.hibernate.jpa.spi.JpaCompliance#isJpaClosedComplianceEnabled()
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#enableJpaClosedCompliance(boolean)
|
||||
*
|
||||
* @since 5.3
|
||||
*/
|
||||
|
@ -2386,10 +2487,8 @@ public interface AvailableSettings {
|
|||
* Specifies the default strategy for storage of the timezone information
|
||||
* for zoned datetime types:
|
||||
* <ul>
|
||||
* <li>{@link org.hibernate.annotations.TimeZoneStorageType#NORMALIZE},
|
||||
* <li>{@link org.hibernate.annotations.TimeZoneStorageType#COLUMN},
|
||||
* <li>{@link org.hibernate.annotations.TimeZoneStorageType#NATIVE}, or
|
||||
* <li>{@link org.hibernate.annotations.TimeZoneStorageType#AUTO}.
|
||||
* <li>{@link org.hibernate.annotations.TimeZoneStorageType#NORMALIZE}, or
|
||||
* <li>{@link org.hibernate.annotations.TimeZoneStorageType#NATIVE}.
|
||||
* </ul>
|
||||
* The default is {@link org.hibernate.annotations.TimeZoneStorageType#NORMALIZE},
|
||||
* meaning that timezone information is not stored by default, but timestamps are
|
||||
|
@ -2708,6 +2807,8 @@ public interface AvailableSettings {
|
|||
/**
|
||||
* Specifies a class which implements {@link org.hibernate.SessionFactoryObserver} and has
|
||||
* a constructor with no parameters.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#addSessionFactoryObservers(SessionFactoryObserver...)
|
||||
*/
|
||||
String SESSION_FACTORY_OBSERVER = "hibernate.session_factory_observer";
|
||||
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
package org.hibernate.context.spi;
|
||||
|
||||
/**
|
||||
* A callback registered with the {@link org.hibernate.SessionFactory} that is responsible for resolving the
|
||||
* current tenant identifier for use with {@link CurrentSessionContext} and
|
||||
* {@link org.hibernate.SessionFactory#getCurrentSession()}
|
||||
* A callback registered with the {@link org.hibernate.SessionFactory} that is responsible
|
||||
* for resolving the current tenant identifier for use with {@link CurrentSessionContext}
|
||||
* and {@link org.hibernate.SessionFactory#getCurrentSession()}.
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
package org.hibernate.jpa.spi;
|
||||
|
||||
import org.hibernate.Transaction;
|
||||
import org.hibernate.cfg.AvailableSettings;
|
||||
|
||||
/**
|
||||
* Encapsulates settings controlling whether Hibernate complies strictly
|
||||
|
@ -44,14 +43,16 @@ public interface JpaCompliance {
|
|||
boolean isJpaTransactionComplianceEnabled();
|
||||
|
||||
/**
|
||||
* Controls how Hibernate interprets a mapped List without an
|
||||
* "order column" specified. Historically Hibernate defines this as
|
||||
* a "bag", which is a concept JPA does not have.
|
||||
* <p>
|
||||
* If enabled, Hibernate will recognize this condition as defining
|
||||
* a {@link org.hibernate.collection.spi.PersistentList}, otherwise
|
||||
* Hibernate will treat is as a
|
||||
* {@link org.hibernate.collection.spi.PersistentBag}
|
||||
* Controls how Hibernate interprets a mapped {@link java.util.List}
|
||||
* without no {@linkplain jakarta.persistence.OrderColumn order column}
|
||||
* specified. Historically Hibernate treats this as a "bag", which is a
|
||||
* concept JPA does not have.
|
||||
* <ul>
|
||||
* <li>If enabled, Hibernate will recognize this case as a
|
||||
* {@linkplain org.hibernate.collection.spi.PersistentList list}.
|
||||
* <li>Otherwise, if disabled, Hibernate will treat it as a
|
||||
* {@linkplain org.hibernate.collection.spi.PersistentBag "bag"}.
|
||||
* </ul>
|
||||
*
|
||||
* @return {@code true} indicates to behave in the spec-defined way,
|
||||
* interpreting the mapping as a "list", rather than a "bag"
|
||||
|
|
|
@ -9,6 +9,8 @@ package org.hibernate.proxy;
|
|||
/**
|
||||
* Delegate to handle the scenario of an entity not found by a specified id.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyEntityNotFoundDelegate(EntityNotFoundDelegate)
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public interface EntityNotFoundDelegate {
|
||||
|
|
|
@ -14,6 +14,8 @@ import java.io.Serializable;
|
|||
* An implementation may be specified via the configuration property
|
||||
* {@value org.hibernate.cfg.AvailableSettings#STATEMENT_INSPECTOR}.
|
||||
*
|
||||
* @see org.hibernate.boot.SessionFactoryBuilder#applyStatementInspector(StatementInspector)
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public interface StatementInspector extends Serializable {
|
||||
|
|
Loading…
Reference in New Issue