Package org.hibernate.engine.spi
Interface SharedSessionContractImplementor
-
- All Superinterfaces:
JdbcSessionOwner
,LobCreationContext
,QueryProducer
,QueryProducerImplementor
,java.io.Serializable
,SharedSessionContract
,TransactionCoordinatorBuilder.Options
,WrapperOptions
- All Known Subinterfaces:
EventSource
,SessionImplementor
- All Known Implementing Classes:
SessionDelegatorBaseImpl
public interface SharedSessionContractImplementor extends SharedSessionContract, JdbcSessionOwner, TransactionCoordinatorBuilder.Options, LobCreationContext, WrapperOptions, QueryProducerImplementor
Defines the internal contract shared betweenSession
andStatelessSession
as used by other parts of Hibernate (such asType
,EntityPersister
andCollectionPersister
implementors A Session, through this interface and SharedSessionContractImplementor, implements:-
JdbcSessionOwner
to drive the behavior of a "JDBC session". Can therefor be used to construct a JdbcCoordinator, which (for now) models a "JDBC session" -
TransactionCoordinatorBuilder.Options
to drive the creation of theTransactionCoordinator
delegate. This allows it to be passed along toTransactionCoordinatorBuilder.buildTransactionCoordinator(org.hibernate.resource.transaction.spi.TransactionCoordinatorOwner, org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder.Options)
-
LobCreationContext
to act as the context for JDBC LOB instance creation -
WrapperOptions
to fulfill the behavior needed while binding/extracting values to/from JDBC as part of the Type contracts
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.hibernate.engine.jdbc.LobCreationContext
LobCreationContext.Callback<T>
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description Transaction
accessTransaction()
Provides access to the underlying transaction or creates a new transaction if one does not already exist or is active.void
afterScrollOperation()
java.lang.String
bestGuessEntityName(java.lang.Object object)
The best guess entity name for an entity not in an associationdefault void
checkOpen()
Performs a check whether the Session is open, and if not: marks current transaction (if one) for rollback only throws an IllegalStateException (JPA defines the exception type)void
checkOpen(boolean markForRollbackIfClosed)
Performs a check whether the Session is open, and if not: ifmarkForRollbackIfClosed
is true, marks current transaction (if one) for rollback only throws an IllegalStateException (JPA defines the exception type)default void
checkTransactionNeededForUpdateOperation(java.lang.String exceptionMessage)
Check if an active Transaction is necessary for the update operation to be executed.java.sql.Connection
connection()
int
executeNativeUpdate(NativeSQLQuerySpecification specification, QueryParameters queryParameters)
Execute a native SQL update or delete queryint
executeUpdate(java.lang.String query, QueryParameters queryParameters)
Execute a HQL update or delete queryvoid
flush()
EntityKey
generateEntityKey(java.io.Serializable id, EntityPersister persister)
Hide the changing requirements of entity key creationCacheMode
getCacheMode()
CacheTransactionSynchronization
getCacheTransactionSynchronization()
The current CacheTransactionContext associated with the Session.default java.lang.Integer
getConfiguredJdbcBatchSize()
Get the currently configured JDBC batch size either at the Session-level or SessionFactory-level.java.io.Serializable
getContextEntityIdentifier(java.lang.Object object)
Return the identifier of the persistent object, or null if not associated with the sessionint
getDontFlushFromFind()
EntityPersister
getEntityPersister(java.lang.String entityName, java.lang.Object object)
Get the EntityPersister for any instancejava.lang.Object
getEntityUsingInterceptor(EntityKey key)
Get the entity instance associated with the given Key, calling the Interceptor if necessarySessionEventListenerManager
getEventListenerManager()
ExceptionConverter
getExceptionConverter()
SessionFactoryImplementor
getFactory()
Get the creating SessionFactoryImplementorFlushModeType
getFlushMode()
Get the flush mode for this session.FlushMode
getHibernateFlushMode()
Get the current flush mode for this session.Interceptor
getInterceptor()
Retrieves the interceptor currently in use by this event source.JdbcCoordinator
getJdbcCoordinator()
JdbcServices
getJdbcServices()
LoadQueryInfluencers
getLoadQueryInfluencers()
Get the load query influencers associated with this session.PersistenceContext
getPersistenceContext()
Get the persistence context for this sessionjava.util.UUID
getSessionIdentifier()
A UUID associated with each Session.java.lang.String
getTenantIdentifier()
The multi-tenancy tenant identifier, if one.default long
getTimestamp()
Deprecated.(since 5.3) UsegetTransactionStartTimestamp()
instead.long
getTransactionStartTimestamp()
A "timestamp" at or before the start of the current transaction.java.lang.String
guessEntityName(java.lang.Object entity)
The guessed entity name for an entity not in an associationjava.lang.Object
immediateLoad(java.lang.String entityName, java.io.Serializable id)
Load an instance immediately.void
initializeCollection(PersistentCollection collection, boolean writing)
Initialize the collection (if not already initialized)java.lang.Object
instantiate(java.lang.String entityName, java.io.Serializable id)
Instantiate the entity class, initializing with the given identifierjava.lang.Object
internalLoad(java.lang.String entityName, java.io.Serializable id, boolean eager, boolean nullable)
Load an instance without checking if it was deleted.boolean
isAutoCloseSessionEnabled()
boolean
isClosed()
Checks whether the session is closed.boolean
isEventSource()
default boolean
isOpenOrWaitingForAutoClose()
Checks whether the session is open or is waiting for auto-closedefault boolean
isQueryParametersValidationEnabled()
boolean
isTransactionInProgress()
Does this Session have an active Hibernate transaction or is there a JTA transaction in progress?java.util.Iterator
iterate(java.lang.String query, QueryParameters queryParameters)
Execute an iterate() queryjava.util.Iterator
iterateFilter(java.lang.Object collection, java.lang.String filter, QueryParameters queryParameters)
Iterate a filterjava.util.List
list(java.lang.String query, QueryParameters queryParameters)
Execute a find() queryjava.util.List
list(Criteria criteria)
Execute a criteria queryjava.util.List
list(NativeSQLQuerySpecification spec, QueryParameters queryParameters)
Execute a native SQL query, and return the results as a fully built list.java.util.List
listCustomQuery(CustomQuery customQuery, QueryParameters queryParameters)
Execute an SQL Queryjava.util.List
listFilter(java.lang.Object collection, java.lang.String filter, QueryParameters queryParameters)
Execute a filtervoid
markForRollbackOnly()
Marks current transaction (if one) for rollback onlyScrollableResultsImplementor
scroll(java.lang.String query, QueryParameters queryParameters)
Execute a scroll() queryScrollableResultsImplementor
scroll(Criteria criteria, ScrollMode scrollMode)
Execute a criteria queryScrollableResultsImplementor
scroll(NativeSQLQuerySpecification spec, QueryParameters queryParameters)
Execute a native SQL query, and return the results as a scrollable result.ScrollableResultsImplementor
scrollCustomQuery(CustomQuery customQuery, QueryParameters queryParameters)
Execute an SQL Queryvoid
setAutoClear(boolean enabled)
Enable/disable automatic cache clearing from after transaction completion (for EJB3)void
setCacheMode(CacheMode cm)
void
setFlushMode(FlushMode flushMode)
Deprecated.(since 5.2) usesetHibernateFlushMode(FlushMode)
insteadvoid
setHibernateFlushMode(FlushMode flushMode)
Set the flush mode for this session.boolean
shouldAutoClose()
-
Methods inherited from interface org.hibernate.resource.jdbc.spi.JdbcSessionOwner
afterTransactionBegin, afterTransactionCompletion, beforeTransactionCompletion, flushBeforeTransactionCompletion, getJdbcBatchSize, getJdbcConnectionAccess, getJdbcSessionContext, getTransactionCoordinator, startTransactionBoundary
-
Methods inherited from interface org.hibernate.engine.jdbc.LobCreationContext
execute
-
Methods inherited from interface org.hibernate.query.spi.QueryProducerImplementor
createNamedQuery, createNamedQuery, createNativeQuery, createNativeQuery, createNativeQuery, createQuery, createQuery, createSQLQuery, getNamedNativeQuery, getNamedQuery, getNamedSQLQuery
-
Methods inherited from interface org.hibernate.SharedSessionContract
beginTransaction, close, createCriteria, createCriteria, createCriteria, createCriteria, createQuery, createStoredProcedureCall, createStoredProcedureCall, createStoredProcedureCall, getJdbcBatchSize, getNamedProcedureCall, getNamedQuery, getTransaction, isConnected, isOpen, setJdbcBatchSize
-
Methods inherited from interface org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder.Options
shouldAutoJoinTransaction
-
Methods inherited from interface org.hibernate.type.descriptor.WrapperOptions
getJdbcTimeZone, getLobCreator, remapSqlTypeDescriptor, useStreamForLobBinding
-
-
-
-
Method Detail
-
getFactory
SessionFactoryImplementor getFactory()
Get the creating SessionFactoryImplementor- Specified by:
getFactory
in interfaceQueryProducerImplementor
-
getEventListenerManager
SessionEventListenerManager getEventListenerManager()
-
getPersistenceContext
PersistenceContext getPersistenceContext()
Get the persistence context for this session
-
getJdbcCoordinator
JdbcCoordinator getJdbcCoordinator()
-
getJdbcServices
JdbcServices getJdbcServices()
-
getTenantIdentifier
java.lang.String getTenantIdentifier()
The multi-tenancy tenant identifier, if one.- Specified by:
getTenantIdentifier
in interfaceSharedSessionContract
- Returns:
- The tenant identifier; may be
null
-
getSessionIdentifier
java.util.UUID getSessionIdentifier()
A UUID associated with each Session. Useful mainly for logging.- Returns:
- The UUID
-
isClosed
boolean isClosed()
Checks whether the session is closed. Provided separately fromSharedSessionContract.isOpen()
as this method does not attempt any JTA synchronization registration, whereasSharedSessionContract.isOpen()
does; which makes this one nicer to use for most internal purposes.- Returns:
true
if the session is closed;false
otherwise.
-
isOpenOrWaitingForAutoClose
default boolean isOpenOrWaitingForAutoClose()
Checks whether the session is open or is waiting for auto-close- Returns:
true
if the session is closed or if it's waiting for auto-close;false
otherwise.
-
checkOpen
default void checkOpen()
Performs a check whether the Session is open, and if not:- marks current transaction (if one) for rollback only
- throws an IllegalStateException (JPA defines the exception type)
-
checkOpen
void checkOpen(boolean markForRollbackIfClosed)
Performs a check whether the Session is open, and if not:- if
markForRollbackIfClosed
is true, marks current transaction (if one) for rollback only - throws an IllegalStateException (JPA defines the exception type)
- if
-
markForRollbackOnly
void markForRollbackOnly()
Marks current transaction (if one) for rollback only
-
getTransactionStartTimestamp
long getTransactionStartTimestamp()
A "timestamp" at or before the start of the current transaction.
-
getTimestamp
@Deprecated default long getTimestamp()
Deprecated.(since 5.3) UsegetTransactionStartTimestamp()
instead.
-
getCacheTransactionSynchronization
CacheTransactionSynchronization getCacheTransactionSynchronization()
The current CacheTransactionContext associated with the Session. This may returnnull
when the Session is not currently part of a transaction.
-
isTransactionInProgress
boolean isTransactionInProgress()
Does this Session have an active Hibernate transaction or is there a JTA transaction in progress?
-
checkTransactionNeededForUpdateOperation
default void checkTransactionNeededForUpdateOperation(java.lang.String exceptionMessage)
Check if an active Transaction is necessary for the update operation to be executed. If an active Transaction is necessary but it is not then a TransactionRequiredException is raised.- Parameters:
exceptionMessage
- the message to use for the TransactionRequiredException
-
accessTransaction
Transaction accessTransaction()
Provides access to the underlying transaction or creates a new transaction if one does not already exist or is active. This is primarily for internal or integrator use.- Returns:
- the transaction
-
generateEntityKey
EntityKey generateEntityKey(java.io.Serializable id, EntityPersister persister)
Hide the changing requirements of entity key creation- Parameters:
id
- The entity idpersister
- The entity persister- Returns:
- The entity key
-
getInterceptor
Interceptor getInterceptor()
Retrieves the interceptor currently in use by this event source.- Returns:
- The interceptor.
-
setAutoClear
void setAutoClear(boolean enabled)
Enable/disable automatic cache clearing from after transaction completion (for EJB3)
-
initializeCollection
void initializeCollection(PersistentCollection collection, boolean writing) throws HibernateException
Initialize the collection (if not already initialized)- Throws:
HibernateException
-
internalLoad
java.lang.Object internalLoad(java.lang.String entityName, java.io.Serializable id, boolean eager, boolean nullable) throws HibernateException
Load an instance without checking if it was deleted. When nullable is disabled this method may create a new proxy or return an existing proxy; if it does not exist, throw an exception. When nullable is enabled, the method does not create new proxies (but might return an existing proxy); if it does not exist, return null. When eager is enabled, the object is eagerly fetched- Throws:
HibernateException
-
immediateLoad
java.lang.Object immediateLoad(java.lang.String entityName, java.io.Serializable id) throws HibernateException
Load an instance immediately. This method is only called when lazily initializing a proxy. Do not return the proxy.- Throws:
HibernateException
-
list
java.util.List list(java.lang.String query, QueryParameters queryParameters) throws HibernateException
Execute a find() query- Throws:
HibernateException
-
iterate
java.util.Iterator iterate(java.lang.String query, QueryParameters queryParameters) throws HibernateException
Execute an iterate() query- Throws:
HibernateException
-
scroll
ScrollableResultsImplementor scroll(java.lang.String query, QueryParameters queryParameters) throws HibernateException
Execute a scroll() query- Throws:
HibernateException
-
scroll
ScrollableResultsImplementor scroll(Criteria criteria, ScrollMode scrollMode)
Execute a criteria query
-
list
java.util.List list(Criteria criteria)
Execute a criteria query
-
listFilter
java.util.List listFilter(java.lang.Object collection, java.lang.String filter, QueryParameters queryParameters) throws HibernateException
Execute a filter- Throws:
HibernateException
-
iterateFilter
java.util.Iterator iterateFilter(java.lang.Object collection, java.lang.String filter, QueryParameters queryParameters) throws HibernateException
Iterate a filter- Throws:
HibernateException
-
getEntityPersister
EntityPersister getEntityPersister(java.lang.String entityName, java.lang.Object object) throws HibernateException
Get the EntityPersister for any instance- Parameters:
entityName
- optional entity nameobject
- the entity instance- Throws:
HibernateException
-
getEntityUsingInterceptor
java.lang.Object getEntityUsingInterceptor(EntityKey key) throws HibernateException
Get the entity instance associated with the given Key, calling the Interceptor if necessary- Throws:
HibernateException
-
getContextEntityIdentifier
java.io.Serializable getContextEntityIdentifier(java.lang.Object object)
Return the identifier of the persistent object, or null if not associated with the session
-
bestGuessEntityName
java.lang.String bestGuessEntityName(java.lang.Object object)
The best guess entity name for an entity not in an association
-
guessEntityName
java.lang.String guessEntityName(java.lang.Object entity) throws HibernateException
The guessed entity name for an entity not in an association- Throws:
HibernateException
-
instantiate
java.lang.Object instantiate(java.lang.String entityName, java.io.Serializable id) throws HibernateException
Instantiate the entity class, initializing with the given identifier- Throws:
HibernateException
-
listCustomQuery
java.util.List listCustomQuery(CustomQuery customQuery, QueryParameters queryParameters) throws HibernateException
Execute an SQL Query- Throws:
HibernateException
-
scrollCustomQuery
ScrollableResultsImplementor scrollCustomQuery(CustomQuery customQuery, QueryParameters queryParameters) throws HibernateException
Execute an SQL Query- Throws:
HibernateException
-
list
java.util.List list(NativeSQLQuerySpecification spec, QueryParameters queryParameters) throws HibernateException
Execute a native SQL query, and return the results as a fully built list.- Parameters:
spec
- The specification of the native SQL query to execute.queryParameters
- The parameters by which to perform the execution.- Returns:
- The result list.
- Throws:
HibernateException
-
scroll
ScrollableResultsImplementor scroll(NativeSQLQuerySpecification spec, QueryParameters queryParameters)
Execute a native SQL query, and return the results as a scrollable result.- Parameters:
spec
- The specification of the native SQL query to execute.queryParameters
- The parameters by which to perform the execution.- Returns:
- The resulting scrollable result.
- Throws:
HibernateException
-
getDontFlushFromFind
int getDontFlushFromFind()
-
executeUpdate
int executeUpdate(java.lang.String query, QueryParameters queryParameters) throws HibernateException
Execute a HQL update or delete query- Throws:
HibernateException
-
executeNativeUpdate
int executeNativeUpdate(NativeSQLQuerySpecification specification, QueryParameters queryParameters) throws HibernateException
Execute a native SQL update or delete query- Throws:
HibernateException
-
getCacheMode
CacheMode getCacheMode()
- Specified by:
getCacheMode
in interfaceQueryProducerImplementor
-
setCacheMode
void setCacheMode(CacheMode cm)
-
setFlushMode
@Deprecated void setFlushMode(FlushMode flushMode)
Deprecated.(since 5.2) usesetHibernateFlushMode(FlushMode)
insteadSet the flush mode for this session. The flush mode determines the points at which the session is flushed. Flushing is the process of synchronizing the underlying persistent store with persistable state held in memory. For a logically "read only" session, it is reasonable to set the session's flush mode toFlushMode.MANUAL
at the start of the session (in order to achieve some extra performance).- Parameters:
flushMode
- the new flush mode
-
getFlushMode
FlushModeType getFlushMode()
Get the flush mode for this session. For users of the Hibernate native APIs, we've had to rename this method as defined by Hibernate historically because the JPA contract defines a method of the same name, but returning the JPAFlushModeType
rather than Hibernate'sFlushMode
. For the former behavior, usegetHibernateFlushMode()
instead.- Returns:
- The FlushModeType in effect for this Session.
-
setHibernateFlushMode
void setHibernateFlushMode(FlushMode flushMode)
Set the flush mode for this session. The flush mode determines the points at which the session is flushed. Flushing is the process of synchronizing the underlying persistent store with persistable state held in memory. For a logically "read only" session, it is reasonable to set the session's flush mode toFlushMode.MANUAL
at the start of the session (in order to achieve some extra performance).- Parameters:
flushMode
- the new flush mode
-
getHibernateFlushMode
FlushMode getHibernateFlushMode()
Get the current flush mode for this session.- Specified by:
getHibernateFlushMode
in interfaceQueryProducerImplementor
- Returns:
- The flush mode
-
connection
java.sql.Connection connection()
-
flush
void flush()
-
isEventSource
boolean isEventSource()
-
afterScrollOperation
void afterScrollOperation()
-
shouldAutoClose
boolean shouldAutoClose()
-
isAutoCloseSessionEnabled
boolean isAutoCloseSessionEnabled()
-
isQueryParametersValidationEnabled
default boolean isQueryParametersValidationEnabled()
-
getLoadQueryInfluencers
LoadQueryInfluencers getLoadQueryInfluencers()
Get the load query influencers associated with this session.- Returns:
- the load query influencers associated with this session; should never be null.
-
getExceptionConverter
ExceptionConverter getExceptionConverter()
-
getConfiguredJdbcBatchSize
default java.lang.Integer getConfiguredJdbcBatchSize()
Get the currently configured JDBC batch size either at the Session-level or SessionFactory-level. If the Session-level JDBC batch size was not configured, return the SessionFactory-level one.- Returns:
- Session-level or or SessionFactory-level JDBC batch size.
- Since:
- 5.2
- See Also:
SessionFactoryOptions.getJdbcBatchSize()
,SessionFactoryBuilder.applyJdbcBatchSize(int)
-
-