Package org.hibernate.engine.spi
Interface SessionImplementor
-
- All Superinterfaces:
AutoCloseable
,Closeable
,EntityManager
,JavaType.CoercionContext
,JdbcSessionOwner
,LobCreationContext
,QueryProducer
,QueryProducerImplementor
,Serializable
,Session
,SharedSessionContract
,SharedSessionContractImplementor
,TransactionCoordinatorBuilder.Options
,WrapperOptions
- All Known Subinterfaces:
EventSource
- All Known Implementing Classes:
AbstractDelegateSessionImplementor
,SessionDelegatorBaseImpl
,SessionImpl
,ToOneDelegateSessionImplementor
public interface SessionImplementor extends Session, SharedSessionContractImplementor
Defines the "internal contract" betweenSession
and other parts of Hibernate including implementors ofType
,EntityPersister
, andCollectionPersister
.The
Session
, via this interface andSharedSessionContractImplementor
, implements:-
JdbcSessionOwner
, and so the session also acts as the orchestrator of a "JDBC session", and may be used to construct aJdbcCoordinator
. -
TransactionCoordinatorBuilder.Options
, allowing the session to control the creation of theTransactionCoordinator
delegate when it is passed as an argument toTransactionCoordinatorBuilder.buildTransactionCoordinator(org.hibernate.resource.transaction.spi.TransactionCoordinatorOwner, org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder.Options)
-
LobCreationContext
, and so the session may act as the context for JDBC LOB instance creation. -
WrapperOptions
, and so the session may influence the process of binding and extracting values to and from JDBC, which is performed by implementors ofJdbcType
.
EventSource
which extends this interface provides a bridge to the event generation features oforg.hibernate.event
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.hibernate.engine.jdbc.LobCreationContext
LobCreationContext.Callback<T>
-
Nested classes/interfaces inherited from interface org.hibernate.Session
Session.LockRequest
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description default SessionImplementor
asSessionImplementor()
Cast this object toSessionImplementor
, if possible.<T> RootGraphImplementor<T>
createEntityGraph(Class<T> rootType)
Create a new mutableEntityGraph
with only a root node.RootGraphImplementor<?>
createEntityGraph(String graphName)
Create a new mutable copy of the namedEntityGraph
, or returnnull
if there is no graph with the given name.void
delete(String entityName, Object child, boolean isCascadeDeleteEnabled, DeleteContext transientEntities)
Deprecated.OperationalContext should cover this overload I believevoid
forceFlush(EntityEntry e)
Initiate a flush to force deletion of a re-persisted entity.void
forceFlush(EntityKey e)
Initiate a flush to force deletion of a re-persisted entity.ActionQueue
getActionQueue()
Get theActionQueue
associated with this session.RootGraphImplementor<?>
getEntityGraph(String graphName)
Retrieve the namedEntityGraph
as an immutable graph, or returnnull
if there is no graph with the given name.default SessionImplementor
getSession()
Returns this object, fulfilling the contract ofWrapperOptions
.SessionFactoryImplementor
getSessionFactory()
Get the session factory which created this session.Object
instantiate(EntityPersister persister, Object id)
Instantiate the entity class of the givenEntityPersister
, initializing the new instance with the given identifier.default boolean
isSessionImplementor()
Does this object implementSessionImplementor
?void
lock(String entityName, Object child, LockOptions lockOptions)
Cascade the lock operation to the given child entity.void
merge(String entityName, Object object, MergeContext copiedAlready)
Deprecated.OperationalContext should cover this overload I believevoid
persist(String entityName, Object object, PersistContext createdAlready)
Deprecated.OperationalContext should cover this overload I believevoid
persistOnFlush(String entityName, Object object, PersistContext copiedAlready)
Deprecated.OperationalContext should cover this overload I believevoid
refresh(String entityName, Object object, RefreshContext refreshedAlready)
Deprecated.OperationalContext should cover this overload I believevoid
removeOrphanBeforeUpdates(String entityName, Object child)
Deprecated.OperationalContext should cover this overload I believe-
Methods inherited from interface jakarta.persistence.EntityManager
close, contains, createNamedStoredProcedureQuery, createNativeQuery, createNativeQuery, createNativeQuery, createStoredProcedureQuery, createStoredProcedureQuery, createStoredProcedureQuery, find, find, find, find, getCriteriaBuilder, getDelegate, getEntityManagerFactory, getLockMode, getMetamodel, getProperties, getTransaction, isJoinedToTransaction, isOpen, joinTransaction, lock, lock, refresh, refresh, refresh, setProperty, unwrap
-
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, fromContext
-
Methods inherited from interface org.hibernate.query.QueryProducer
createMutationQuery, createNamedSelectionQuery, createNamedSelectionQuery, createSelectionQuery, createSelectionQuery, createSelectionQuery
-
Methods inherited from interface org.hibernate.query.spi.QueryProducerImplementor
createMutationQuery, createMutationQuery, createMutationQuery, createNamedMutationQuery, createNamedQuery, createNamedQuery, createNativeMutationQuery, createNativeQuery, createNativeQuery, createNativeQuery, createNativeQuery, createNativeQuery, createQuery, createQuery, createQuery, createQuery, createQuery, getNamedNativeQuery, getNamedNativeQuery, getNamedQuery
-
Methods inherited from interface org.hibernate.Session
addEventListeners, buildLockRequest, byId, byId, byMultipleIds, byMultipleIds, byMultipleNaturalId, byMultipleNaturalId, byNaturalId, byNaturalId, bySimpleNaturalId, bySimpleNaturalId, cancelQuery, clear, contains, createNamedQuery, createNamedQuery, createQuery, createQuery, createQuery, createQuery, createQuery, delete, delete, detach, disableFetchProfile, disableFilter, enableFetchProfile, enableFilter, evict, flush, get, get, get, get, get, get, getCacheMode, getCacheRetrieveMode, getCacheStoreMode, getCurrentLockMode, getEnabledFilter, getEntityGraphs, getEntityName, getFetchBatchSize, getFlushMode, getHibernateFlushMode, getIdentifier, getLobHelper, getReference, getReference, getReference, getStatistics, isDefaultReadOnly, isDirty, isFetchProfileEnabled, isReadOnly, isSubselectFetchingEnabled, load, load, load, load, load, load, load, lock, lock, lock, merge, merge, persist, persist, refresh, refresh, refresh, refresh, refresh, remove, replicate, replicate, save, save, saveOrUpdate, saveOrUpdate, sessionWithOptions, setCacheMode, setCacheRetrieveMode, setCacheStoreMode, setDefaultReadOnly, setFetchBatchSize, setFlushMode, setHibernateFlushMode, setReadOnly, setSubselectFetchingEnabled, update, update
-
Methods inherited from interface org.hibernate.SharedSessionContract
beginTransaction, close, createEntityGraph, createNamedStoredProcedureQuery, createStoredProcedureCall, createStoredProcedureCall, createStoredProcedureCall, createStoredProcedureQuery, createStoredProcedureQuery, createStoredProcedureQuery, doReturningWork, doWork, getCriteriaBuilder, getJdbcBatchSize, getNamedProcedureCall, getTenantIdentifier, getTransaction, isConnected, isJoinedToTransaction, isOpen, joinTransaction, setJdbcBatchSize
-
Methods inherited from interface org.hibernate.engine.spi.SharedSessionContractImplementor
accessTransaction, afterOperation, afterScrollOperation, asEventSource, asStatelessSession, autoFlushIfRequired, bestGuessEntityName, bestGuessEntityName, checkOpen, checkOpen, checkTransactionNeededForUpdateOperation, flush, generateEntityKey, getCacheMode, getCacheTransactionSynchronization, getConfiguredJdbcBatchSize, getContextEntityIdentifier, getEntityPersister, getEntityUsingInterceptor, getEventListenerManager, getExceptionConverter, getFactory, getFlushMode, getHibernateFlushMode, getInterceptor, getJdbcCoordinator, getJdbcServices, getLoadQueryInfluencers, getPersistenceContext, getPersistenceContextInternal, getSessionIdentifier, getSessionToken, getTypeConfiguration, guessEntityName, immediateLoad, initializeCollection, instantiate, internalLoad, isAutoCloseSessionEnabled, isClosed, isCriteriaCopyTreeEnabled, isDefaultReadOnly, isEnforcingFetchGraph, isEventSource, isOpenOrWaitingForAutoClose, isStatelessSession, isTransactionInProgress, markForRollbackOnly, prepareForQueryExecution, setAutoClear, setCacheMode, setCriteriaCopyTreeEnabled, setEnforcingFetchGraph, setHibernateFlushMode, shouldAutoClose
-
Methods inherited from interface org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder.Options
shouldAutoJoinTransaction
-
Methods inherited from interface org.hibernate.type.descriptor.WrapperOptions
getJdbcTimeZone, getLobCreator, getPreferredSqlTypeCodeForBoolean, useStreamForLobBinding
-
-
-
-
Method Detail
-
getSession
default SessionImplementor getSession()
Description copied from interface:SharedSessionContractImplementor
Returns this object, fulfilling the contract ofWrapperOptions
.- Specified by:
getSession
in interfaceSharedSessionContractImplementor
- Specified by:
getSession
in interfaceWrapperOptions
-
getSessionFactory
SessionFactoryImplementor getSessionFactory()
Description copied from interface:Session
Get the session factory which created this session.- Specified by:
getSessionFactory
in interfaceSession
- Specified by:
getSessionFactory
in interfaceSharedSessionContractImplementor
- Specified by:
getSessionFactory
in interfaceWrapperOptions
- Returns:
- the session factory
- See Also:
SessionFactory
-
createEntityGraph
<T> RootGraphImplementor<T> createEntityGraph(Class<T> rootType)
Description copied from interface:SharedSessionContract
Create a new mutableEntityGraph
with only a root node.- Specified by:
createEntityGraph
in interfaceEntityManager
- Specified by:
createEntityGraph
in interfaceSession
- Specified by:
createEntityGraph
in interfaceSharedSessionContract
- Parameters:
rootType
- the root entity class of the graph
-
createEntityGraph
RootGraphImplementor<?> createEntityGraph(String graphName)
Description copied from interface:SharedSessionContract
Create a new mutable copy of the namedEntityGraph
, or returnnull
if there is no graph with the given name.- Specified by:
createEntityGraph
in interfaceEntityManager
- Specified by:
createEntityGraph
in interfaceSession
- Specified by:
createEntityGraph
in interfaceSharedSessionContract
- Parameters:
graphName
- the name of the graph- See Also:
EntityManagerFactory.addNamedEntityGraph(String, EntityGraph)
-
getEntityGraph
RootGraphImplementor<?> getEntityGraph(String graphName)
Description copied from interface:SharedSessionContract
Retrieve the namedEntityGraph
as an immutable graph, or returnnull
if there is no graph with the given name.- Specified by:
getEntityGraph
in interfaceEntityManager
- Specified by:
getEntityGraph
in interfaceSession
- Specified by:
getEntityGraph
in interfaceSharedSessionContract
- Parameters:
graphName
- the name of the graph- See Also:
EntityManagerFactory.addNamedEntityGraph(String, EntityGraph)
-
getActionQueue
ActionQueue getActionQueue()
Get theActionQueue
associated with this session.
-
instantiate
Object instantiate(EntityPersister persister, Object id) throws HibernateException
Description copied from interface:SharedSessionContractImplementor
Instantiate the entity class of the givenEntityPersister
, initializing the new instance with the given identifier.This is more efficient than
SharedSessionContractImplementor.instantiate(String, Object)
, but not always interchangeable, since a single persister might be responsible for multiple types.- Specified by:
instantiate
in interfaceSharedSessionContractImplementor
- Throws:
HibernateException
-
forceFlush
void forceFlush(EntityEntry e) throws HibernateException
Initiate a flush to force deletion of a re-persisted entity.- Throws:
HibernateException
-
forceFlush
void forceFlush(EntityKey e) throws HibernateException
Initiate a flush to force deletion of a re-persisted entity.- Throws:
HibernateException
-
lock
void lock(String entityName, Object child, LockOptions lockOptions)
Cascade the lock operation to the given child entity.
-
merge
@Deprecated void merge(String entityName, Object object, MergeContext copiedAlready) throws HibernateException
Deprecated.OperationalContext should cover this overload I believe- Throws:
HibernateException
-
persist
@Deprecated void persist(String entityName, Object object, PersistContext createdAlready) throws HibernateException
Deprecated.OperationalContext should cover this overload I believe- Throws:
HibernateException
-
persistOnFlush
@Deprecated void persistOnFlush(String entityName, Object object, PersistContext copiedAlready)
Deprecated.OperationalContext should cover this overload I believe
-
refresh
@Deprecated void refresh(String entityName, Object object, RefreshContext refreshedAlready) throws HibernateException
Deprecated.OperationalContext should cover this overload I believe- Throws:
HibernateException
-
delete
@Deprecated void delete(String entityName, Object child, boolean isCascadeDeleteEnabled, DeleteContext transientEntities)
Deprecated.OperationalContext should cover this overload I believe
-
removeOrphanBeforeUpdates
@Deprecated void removeOrphanBeforeUpdates(String entityName, Object child)
Deprecated.OperationalContext should cover this overload I believe
-
asSessionImplementor
default SessionImplementor asSessionImplementor()
Description copied from interface:SharedSessionContractImplementor
Cast this object toSessionImplementor
, if possible.- Specified by:
asSessionImplementor
in interfaceSharedSessionContractImplementor
-
isSessionImplementor
default boolean isSessionImplementor()
Description copied from interface:SharedSessionContractImplementor
Does this object implementSessionImplementor
?- Specified by:
isSessionImplementor
in interfaceSharedSessionContractImplementor
-
-