public static interface Stage.StatelessSession extends AutoCloseable
org.hibernate.StatelessSession
interface, which provides a command-oriented API for performing bulk operations against a database. A stateless session does not implement a first-level cache nor interact with any second-level cache, nor does it implement transactional write-behind or automatic dirty checking, nor do operations cascade to associated instances. Collections are ignored by a stateless session. Operations performed via a stateless session bypass Hibernate's event model and interceptors.
For certain kinds of work, a stateless session may perform slightly better than a stateful session.
In particular, for a session which loads many entities, use of a StatelessSession
alleviates the need to call:
Stage.Session.clear()
or Stage.Session.detach(Object)
to perform first-level cache management, and Stage.Session.setCacheMode(CacheMode)
to bypass interaction with the second-level cache. Stateless sessions are vulnerable to data aliasing effects, due to the lack of a first-level cache.
org.hibernate.StatelessSession
Modifier and Type | Method and Description |
---|---|
void | close() Close the reactive session and release the underlying database connection. |
<R> Stage.Query<R> | createNativeQuery(String queryString) Create an instance of Stage.Query for the given SQL query string, or SQL update, insert, or delete statement. |
<R> Stage.Query<R> | createNativeQuery(String queryString, Class<R> resultType) Create an instance of Stage.Query for the given SQL query string, using the given resultType to interpret the results. |
<R> Stage.Query<R> | createNativeQuery(String queryString, ResultSetMapping<R> resultSetMapping) Create an instance of Stage.Query for the given SQL query string, using the given ResultSetMapping to interpret the result set. |
<R> Stage.Query<R> | createQuery(String queryString) Create an instance of Stage.Query for the given HQL/JPQL query string or HQL/JPQL update or delete statement. |
<R> Stage.Query<R> | createQuery(String queryString, Class<R> resultType) Create an instance of Stage.Query for the given HQL/JPQL query string. |
CompletionStage<Stage.StatelessSession> | delete(Object entity) Delete a row. |
<T> CompletionStage<T> | get(Class<T> entityClass, Object id) Retrieve a row. |
<T> CompletionStage<T> | get(Class<T> entityClass, Object id, LockMode lockMode) Retrieve a row, obtaining the specified lock mode. |
<T> ResultSetMapping<T> | getResultSetMapping(Class<T> resultType, String mappingName) Obtain a native SQL result set mapping defined via the annotation javax.persistence.SqlResultSetMapping . |
CompletionStage<Stage.StatelessSession> | insert(Object entity) Insert a row. |
boolean | isOpen() |
CompletionStage<Stage.StatelessSession> | refresh(Object entity) Refresh the entity instance state from the database. |
CompletionStage<Stage.StatelessSession> | refresh(Object entity, LockMode lockMode) Refresh the entity instance state from the database. |
CompletionStage<Stage.StatelessSession> | update(Object entity) Update a row. |
<T> CompletionStage<T> get(Class<T> entityClass, Object id)
entityClass
- The class of the entity to retrieveid
- The id of the entity to retrieveCompletionStage
org.hibernate.StatelessSession#get(Class, Serializable)
<T> CompletionStage<T> get(Class<T> entityClass, Object id, LockMode lockMode)
entityClass
- The class of the entity to retrieveid
- The id of the entity to retrievelockMode
- The lock mode to apply to the entityCompletionStage
org.hibernate.StatelessSession#get(Class, Serializable, LockMode)
<R> Stage.Query<R> createQuery(String queryString)
Stage.Query
for the given HQL/JPQL query string or HQL/JPQL update or delete statement. In the case of an update or delete, the returned Stage.Query
must be executed using Stage.Query.executeUpdate()
which returns an affected row count.queryString
- The HQL/JPQL query, update or delete statementStage.Query
instance for manipulation and executionStage.Session.createQuery(String)
<R> Stage.Query<R> createQuery(String queryString, Class<R> resultType)
Stage.Query
for the given HQL/JPQL query string.queryString
- The HQL/JPQL queryresultType
- the Java type returned in each row of query resultsStage.Query
instance for manipulation and executionStage.Session.createQuery(String, Class)
<R> Stage.Query<R> createNativeQuery(String queryString)
Stage.Query
for the given SQL query string, or SQL update, insert, or delete statement. In the case of an update, insert or delete, the returned Stage.Query
must be executed using Stage.Query.executeUpdate()
which returns an affected row count. In the case of a query:queryString
- The SQL select, update, insert, or delete statementStage.Session.createNativeQuery(String)
<R> Stage.Query<R> createNativeQuery(String queryString, Class<R> resultType)
Stage.Query
for the given SQL query string, using the given resultType
to interpret the results.queryString
- The SQL queryresultType
- the Java type returned in each row of query resultsStage.Query
instance for manipulation and executionStage.Session.createNativeQuery(String, Class)
<R> Stage.Query<R> createNativeQuery(String queryString, ResultSetMapping<R> resultSetMapping)
Stage.Query
for the given SQL query string, using the given ResultSetMapping
to interpret the result set.queryString
- The SQL queryresultSetMapping
- the result set mappingStage.Query
instance for manipulation and executionStage.Session.createNativeQuery(String, ResultSetMapping)
CompletionStage<Stage.StatelessSession> insert(Object entity)
entity
- a new transient instanceorg.hibernate.StatelessSession#insert(Object)
CompletionStage<Stage.StatelessSession> delete(Object entity)
entity
- a detached entity instanceorg.hibernate.StatelessSession#delete(Object)
CompletionStage<Stage.StatelessSession> update(Object entity)
entity
- a detached entity instanceorg.hibernate.StatelessSession#update(Object)
CompletionStage<Stage.StatelessSession> refresh(Object entity)
entity
- The entity to be refreshed.org.hibernate.StatelessSession#refresh(Object)
CompletionStage<Stage.StatelessSession> refresh(Object entity, LockMode lockMode)
entity
- The entity to be refreshed.lockMode
- The LockMode to be applied.org.hibernate.StatelessSession#refresh(Object, LockMode)
<T> ResultSetMapping<T> getResultSetMapping(Class<T> resultType, String mappingName)
javax.persistence.SqlResultSetMapping
.boolean isOpen()
close()
has been calledvoid close()
close
in interface AutoCloseable