Class AbstractDelegatingSharedSessionBuilder
- All Implemented Interfaces:
CommonBuilder
,CommonSharedBuilder
,SessionBuilder
,SharedSessionBuilder
SharedSessionBuilder
implementations that wish to implement only parts of that contract
themselves while forwarding other method invocations to a delegate instance.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionautoClear
(boolean autoClear) Should the session be automatically cleared on a failed transaction?Signifies that the autoClose flag from the original session should be used to create the new session.autoClose
(boolean autoClose) Should the session be automatically closed after transaction completion?Signifies that the autoJoinTransaction flag from the original session should be used to create the new session.autoJoinTransactions
(boolean autoJoinTransactions) Should the session built automatically join in any ongoing JTA transactions.Remove all listeners intended for the built session currently held here, including any auto-apply ones; in other words, start with a clean slate.Signifies that the connection from the original session should be used to create the new session.connection
(Connection connection) Adds a specific connection to the session options.connectionHandling
(ConnectionAcquisitionMode acquisitionMode, ConnectionReleaseMode releaseMode) Specifies the connection handling modes for the session.Signifies that the connection release mode from the original session should be used to create the new session.Deprecated.Deprecated.defaultBatchFetchSize
(int defaultBatchFetchSize) Specify the default batch fetch size for the session.delegate()
eventListeners
(SessionEventListener... listeners) Add one or moreSessionEventListener
instances to the list of listeners for the new session to be built.Signifies that the FlushMode from the original session should be used to create the new session.Specify the initialFlushMode
to use for the opened Sessionprotected SharedSessionBuilder
getThis()
identifierRollback
(boolean identifierRollback) Enable identifier rollback after entity removal for the session.initialCacheMode
(CacheMode cacheMode) Specify the initialCacheMode
for the session.Signifies the interceptor from the original session should be used to create the new session.interceptor
(Interceptor interceptor) Adds a specific interceptor to the session options.jdbcTimeZone
(TimeZone timeZone) Specify the JDBC time zone for the session.Specifies that noInterceptor
should be used.Specifies that no session-scoped interceptor should be instantiated for the new session.Signifies that no SQL statement inspector should be used.Opens a session with the specified options.readOnly
(boolean readOnly) Specify a read-only mode for the session.Signifies that the SQL statement inspector from the original session should be used.statementInspector
(UnaryOperator<String> operator) Applies the given statement inspection function to the session.statementInspector
(StatementInspector statementInspector) Deprecated.subselectFetchEnabled
(boolean subselectFetchEnabled) Specify whether subselect fetching is enabled for the session.tenantIdentifier
(Object tenantIdentifier) Define the tenant identifier to be associated with the opened session.tenantIdentifier
(String tenantIdentifier) Deprecated, for removal: This API element is subject to removal in a future version.
-
Constructor Details
-
Method Details
-
getThis
-
delegate
-
openSession
Description copied from interface:SessionBuilder
Opens a session with the specified options.- Specified by:
openSession
in interfaceSessionBuilder
- Returns:
- The session
-
interceptor
Description copied from interface:CommonSharedBuilder
Signifies the interceptor from the original session should be used to create the new session.- Specified by:
interceptor
in interfaceCommonSharedBuilder
- Specified by:
interceptor
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
connection
Description copied from interface:CommonSharedBuilder
Signifies that the connection from the original session should be used to create the new session. Implies that the overall "transaction context" should be shared as well.- Specified by:
connection
in interfaceCommonSharedBuilder
- Specified by:
connection
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
connectionReleaseMode
Deprecated.Description copied from interface:SharedSessionBuilder
Signifies that the connection release mode from the original session should be used to create the new session.- Specified by:
connectionReleaseMode
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
connectionHandlingMode
Description copied from interface:SharedSessionBuilder
Signifies that the connection release mode from the original session should be used to create the new session.- Specified by:
connectionHandlingMode
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
autoJoinTransactions
Description copied from interface:SharedSessionBuilder
Signifies that the autoJoinTransaction flag from the original session should be used to create the new session.- Specified by:
autoJoinTransactions
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
autoClose
Description copied from interface:SharedSessionBuilder
Signifies that the autoClose flag from the original session should be used to create the new session.- Specified by:
autoClose
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
interceptor
Description copied from interface:CommonBuilder
Adds a specific interceptor to the session options.- Specified by:
interceptor
in interfaceCommonBuilder
- Specified by:
interceptor
in interfaceCommonSharedBuilder
- Specified by:
interceptor
in interfaceSessionBuilder
- Specified by:
interceptor
in interfaceSharedSessionBuilder
- Parameters:
interceptor
- The interceptor to use.- Returns:
this
, for method chaining
-
noInterceptor
Description copied from interface:CommonBuilder
Specifies that noInterceptor
should be used.By default, if no
Interceptor
is explicitly specified, theInterceptor
associated with theSessionFactory
is inherited by the new session. Or, if there is no interceptor associated with theSessionFactory
, but a session-scoped interceptor has been configured, a new session-scopedInterceptor
will be created for the new session.Calling
interceptor(null)
has the same effect.- Specified by:
noInterceptor
in interfaceCommonBuilder
- Specified by:
noInterceptor
in interfaceCommonSharedBuilder
- Specified by:
noInterceptor
in interfaceSessionBuilder
- Specified by:
noInterceptor
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
noSessionInterceptorCreation
Description copied from interface:CommonBuilder
Specifies that no session-scoped interceptor should be instantiated for the new session.By default, if no
Interceptor
is explicitly specified, and if there is no interceptor associated with theSessionFactory
, but a session-scoped interceptor has been configured, a new session-scopedInterceptor
will be created for the new session.Note that this operation does not disable use of an interceptor associated with the
SessionFactory
.- Specified by:
noSessionInterceptorCreation
in interfaceCommonBuilder
- Specified by:
noSessionInterceptorCreation
in interfaceCommonSharedBuilder
- Specified by:
noSessionInterceptorCreation
in interfaceSessionBuilder
- Specified by:
noSessionInterceptorCreation
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining- See Also:
-
statementInspector
Deprecated.Description copied from interface:SessionBuilder
Applies the givenStatementInspector
to the session.- Specified by:
statementInspector
in interfaceSessionBuilder
- Specified by:
statementInspector
in interfaceSharedSessionBuilder
- Parameters:
statementInspector
- TheStatementInspector
to use.- Returns:
this
, for method chaining
-
statementInspector
Description copied from interface:CommonBuilder
Applies the given statement inspection function to the session.- Specified by:
statementInspector
in interfaceCommonBuilder
- Specified by:
statementInspector
in interfaceCommonSharedBuilder
- Specified by:
statementInspector
in interfaceSessionBuilder
- Specified by:
statementInspector
in interfaceSharedSessionBuilder
- Parameters:
operator
- An operator which accepts a SQL string, returning a processed SQL string to be used by Hibernate instead of the given original SQL. The operator may simply return the original SQL.- Returns:
this
, for method chaining
-
statementInspector
Description copied from interface:CommonSharedBuilder
Signifies that the SQL statement inspector from the original session should be used.- Specified by:
statementInspector
in interfaceCommonSharedBuilder
- Specified by:
statementInspector
in interfaceSharedSessionBuilder
-
noStatementInspector
Description copied from interface:CommonBuilder
Signifies that no SQL statement inspector should be used.By default, if no inspector is explicitly specified, the inspector associated with the
SessionFactory
is inherited by the new session.Calling
CommonBuilder.interceptor(Interceptor)
with null has the same effect.- Specified by:
noStatementInspector
in interfaceCommonBuilder
- Specified by:
noStatementInspector
in interfaceCommonSharedBuilder
- Specified by:
noStatementInspector
in interfaceSessionBuilder
- Specified by:
noStatementInspector
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
connection
Description copied from interface:SessionBuilder
Adds a specific connection to the session options.- Specified by:
connection
in interfaceCommonBuilder
- Specified by:
connection
in interfaceCommonSharedBuilder
- Specified by:
connection
in interfaceSessionBuilder
- Specified by:
connection
in interfaceSharedSessionBuilder
- Parameters:
connection
- The connection to use.- Returns:
this
, for method chaining
-
autoJoinTransactions
Description copied from interface:SessionBuilder
Should the session built automatically join in any ongoing JTA transactions.- Specified by:
autoJoinTransactions
in interfaceSessionBuilder
- Specified by:
autoJoinTransactions
in interfaceSharedSessionBuilder
- Parameters:
autoJoinTransactions
- Should JTA transactions be automatically joined- Returns:
this
, for method chaining- See Also:
-
autoClose
Description copied from interface:SessionBuilder
Should the session be automatically closed after transaction completion?- Specified by:
autoClose
in interfaceSessionBuilder
- Specified by:
autoClose
in interfaceSharedSessionBuilder
- Parameters:
autoClose
- Should the session be automatically closed- Returns:
this
, for method chaining- See Also:
-
tenantIdentifier
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:SessionBuilder
Define the tenant identifier to be associated with the opened session.- Specified by:
tenantIdentifier
in interfaceSessionBuilder
- Specified by:
tenantIdentifier
in interfaceSharedSessionBuilder
- Parameters:
tenantIdentifier
- The tenant identifier.- Returns:
this
, for method chaining
-
tenantIdentifier
Description copied from interface:SessionBuilder
Define the tenant identifier to be associated with the opened session.- Specified by:
tenantIdentifier
in interfaceCommonBuilder
- Specified by:
tenantIdentifier
in interfaceCommonSharedBuilder
- Specified by:
tenantIdentifier
in interfaceSessionBuilder
- Specified by:
tenantIdentifier
in interfaceSharedSessionBuilder
- Parameters:
tenantIdentifier
- The tenant identifier.- Returns:
this
, for method chaining
-
readOnly
Description copied from interface:CommonBuilder
Specify a read-only mode for the session. If a session is created in read-only mode, thenConnection.setReadOnly(boolean)
is called when a JDBC connection is obtained.Furthermore, if read/write replication is in use, then:
- a read-only session will connect to a read-only replica, but
- a non-read-only session will connect to a writable replica.
When read/write replication is in use, it's strongly recommended that the session be created with the initial cache mode set to
CacheMode.GET
, to avoid writing stale data read from a read-only replica to the second-level cache. Hibernate cannot possibly guarantee that data read from a read-only replica is up to date.When read/write replication is in use, it's possible that an item read from the second-level cache might refer to data which does not yet exist in the read-only replica. In this situation, an exception occurs when the association is fetched. To completely avoid this possibility, the initial cache mode must be set to
CacheMode.IGNORE
. However, it's also usually possible to structure data access code in a way which eliminates this possibility.try (var readOnlySession = sessionFactory.withOptions() .readOnly(true) .initialCacheMode(CacheMode.IGNORE) .openSession()) { ... }
If a session is created in read-only mode, then it cannot be changed to read-write mode, and any call to
Session.setDefaultReadOnly(boolean)
with fail. On the other hand, if a session is created in read-write mode, then it may later be switched to read-only mode, but all database access is directed to the writable replica.- Specified by:
readOnly
in interfaceCommonBuilder
- Specified by:
readOnly
in interfaceCommonSharedBuilder
- Specified by:
readOnly
in interfaceSessionBuilder
- Specified by:
readOnly
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining- See Also:
-
initialCacheMode
Description copied from interface:CommonBuilder
Specify the initialCacheMode
for the session.- Specified by:
initialCacheMode
in interfaceCommonBuilder
- Specified by:
initialCacheMode
in interfaceCommonSharedBuilder
- Specified by:
initialCacheMode
in interfaceSessionBuilder
- Specified by:
initialCacheMode
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining- See Also:
-
eventListeners
Description copied from interface:SessionBuilder
Add one or moreSessionEventListener
instances to the list of listeners for the new session to be built.- Specified by:
eventListeners
in interfaceSessionBuilder
- Specified by:
eventListeners
in interfaceSharedSessionBuilder
- Parameters:
listeners
- The listeners to incorporate into the built Session- Returns:
this
, for method chaining
-
clearEventListeners
Description copied from interface:SessionBuilder
Remove all listeners intended for the built session currently held here, including any auto-apply ones; in other words, start with a clean slate.- Specified by:
clearEventListeners
in interfaceSessionBuilder
- Specified by:
clearEventListeners
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
connectionHandlingMode
Deprecated.Description copied from interface:SessionBuilder
Specifies the connection handling mode.- Specified by:
connectionHandlingMode
in interfaceSessionBuilder
- Specified by:
connectionHandlingMode
in interfaceSharedSessionBuilder
- Parameters:
mode
- The connection handling mode to use.- Returns:
this
, for method chaining
-
connectionHandling
public SharedSessionBuilder connectionHandling(ConnectionAcquisitionMode acquisitionMode, ConnectionReleaseMode releaseMode) Description copied from interface:SessionBuilder
Specifies the connection handling modes for the session.Note that if
ConnectionAcquisitionMode.IMMEDIATELY
is specified, then the release mode must beConnectionReleaseMode.ON_CLOSE
.- Specified by:
connectionHandling
in interfaceCommonBuilder
- Specified by:
connectionHandling
in interfaceCommonSharedBuilder
- Specified by:
connectionHandling
in interfaceSessionBuilder
- Specified by:
connectionHandling
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
autoClear
Description copied from interface:SessionBuilder
Should the session be automatically cleared on a failed transaction?- Specified by:
autoClear
in interfaceSessionBuilder
- Specified by:
autoClear
in interfaceSharedSessionBuilder
- Parameters:
autoClear
- Whether the Session should be automatically cleared- Returns:
this
, for method chaining
-
flushMode
Description copied from interface:SessionBuilder
Specify the initialFlushMode
to use for the opened Session- Specified by:
flushMode
in interfaceSessionBuilder
- Specified by:
flushMode
in interfaceSharedSessionBuilder
- Parameters:
flushMode
- The initialFlushMode
to use for the opened Session- Returns:
this
, for method chaining- See Also:
-
flushMode
Description copied from interface:SharedSessionBuilder
Signifies that the FlushMode from the original session should be used to create the new session.- Specified by:
flushMode
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
jdbcTimeZone
Description copied from interface:SessionBuilder
Specify the JDBC time zone for the session.- Specified by:
jdbcTimeZone
in interfaceCommonBuilder
- Specified by:
jdbcTimeZone
in interfaceCommonSharedBuilder
- Specified by:
jdbcTimeZone
in interfaceSessionBuilder
- Specified by:
jdbcTimeZone
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining
-
identifierRollback
Description copied from interface:SessionBuilder
Enable identifier rollback after entity removal for the session.- Specified by:
identifierRollback
in interfaceSessionBuilder
- Specified by:
identifierRollback
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining- See Also:
-
defaultBatchFetchSize
Description copied from interface:SessionBuilder
Specify the default batch fetch size for the session.- Specified by:
defaultBatchFetchSize
in interfaceSessionBuilder
- Specified by:
defaultBatchFetchSize
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining- See Also:
-
subselectFetchEnabled
Description copied from interface:SessionBuilder
Specify whether subselect fetching is enabled for the session.- Specified by:
subselectFetchEnabled
in interfaceSessionBuilder
- Specified by:
subselectFetchEnabled
in interfaceSharedSessionBuilder
- Returns:
this
, for method chaining- See Also:
-