Class StageStatelessSessionImpl
- java.lang.Object
-
- org.hibernate.reactive.stage.impl.StageStatelessSessionImpl
-
- All Implemented Interfaces:
Stage.Closeable
,Stage.StatelessSession
public class StageStatelessSessionImpl extends java.lang.Object implements Stage.StatelessSession
Implements theStage.StatelessSession
API. This delegating class is needed to avoid name clashes when implementing bothStatelessSession
andStatelessSession
.
-
-
Constructor Summary
Constructors Constructor Description StageStatelessSessionImpl(ReactiveStatelessSession delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.CompletionStage<java.lang.Void>
close()
Close the reactive session and release the underlying database connection.<T> jakarta.persistence.EntityGraph<T>
createEntityGraph(java.lang.Class<T> rootType)
Create a new mutableEntityGraph
<T> jakarta.persistence.EntityGraph<T>
createEntityGraph(java.lang.Class<T> rootType, java.lang.String graphName)
Create a new mutable copy of a namedEntityGraph
<R> Stage.Query<R>
createNamedQuery(java.lang.String queryName)
Create an instance ofStage.Query
for the named query.<R> Stage.SelectionQuery<R>
createNamedQuery(java.lang.String queryName, java.lang.Class<R> resultType)
Create an instance ofStage.Query
for the named query.<R> Stage.Query<R>
createNativeQuery(java.lang.String queryString)
Create an instance ofStage.Query
for the given SQL query string, or SQL update, insert, or delete statement.<R> Stage.SelectionQuery<R>
createNativeQuery(java.lang.String queryString, java.lang.Class<R> resultType)
Create an instance ofStage.Query
for the given SQL query string, using the givenresultType
to interpret the results.<R> Stage.MutationQuery
createQuery(jakarta.persistence.criteria.CriteriaDelete<R> criteriaDelete)
Create an instance ofStage.MutationQuery
for the given criteria delete.<R> Stage.SelectionQuery<R>
createQuery(jakarta.persistence.criteria.CriteriaQuery<R> criteriaQuery)
Create an instance ofStage.SelectionQuery
for the given criteria query.<R> Stage.MutationQuery
createQuery(jakarta.persistence.criteria.CriteriaUpdate<R> criteriaUpdate)
Create an instance ofStage.MutationQuery
for the given criteria update.<R> Stage.Query<R>
createQuery(java.lang.String queryString)
Create an instance ofStage.Query
for the given HQL/JPQL query string or HQL/JPQL update or delete statement.<R> Stage.SelectionQuery<R>
createQuery(java.lang.String queryString, java.lang.Class<R> resultType)
Create an instance ofStage.SelectionQuery
for the given HQL/JPQL query string and query result type.Stage.Transaction
currentTransaction()
Obtain the transaction currently associated with this session, if any.java.util.concurrent.CompletionStage<java.lang.Void>
delete(int batchSize, java.lang.Object... entities)
Delete multiple rows.java.util.concurrent.CompletionStage<java.lang.Void>
delete(java.lang.Object entity)
Delete a row.java.util.concurrent.CompletionStage<java.lang.Void>
delete(java.lang.Object... entities)
Delete multiple rows.<T> java.util.concurrent.CompletionStage<T>
fetch(T association)
Asynchronously fetch an association that's configured for lazy loading.<T> java.util.concurrent.CompletionStage<T>
get(jakarta.persistence.EntityGraph<T> entityGraph, java.lang.Object id)
Retrieve a row, using the givenEntityGraph
as a fetch plan.<T> java.util.concurrent.CompletionStage<T>
get(java.lang.Class<T> entityClass, java.lang.Object id)
Retrieve a row.<T> java.util.concurrent.CompletionStage<T>
get(java.lang.Class<T> entityClass, java.lang.Object id, org.hibernate.LockMode lockMode)
Retrieve a row, obtaining the specified lock mode.<T> jakarta.persistence.EntityGraph<T>
getEntityGraph(java.lang.Class<T> rootType, java.lang.String graphName)
Obtain a namedEntityGraph
Stage.SessionFactory
getFactory()
TheStage.SessionFactory
which created this session.ReactiveConnection
getReactiveConnection()
<T> ResultSetMapping<T>
getResultSetMapping(java.lang.Class<T> resultType, java.lang.String mappingName)
Obtain a native SQL result set mapping defined via the annotationSqlResultSetMapping
.java.util.concurrent.CompletionStage<java.lang.Void>
insert(int batchSize, java.lang.Object... entities)
Insert multiple rows.java.util.concurrent.CompletionStage<java.lang.Void>
insert(java.lang.Object entity)
Insert a row.java.util.concurrent.CompletionStage<java.lang.Void>
insert(java.lang.Object... entities)
Insert multiple rows.boolean
isOpen()
java.util.concurrent.CompletionStage<java.lang.Void>
refresh(int batchSize, java.lang.Object... entities)
Refresh the entity instance state from the database.java.util.concurrent.CompletionStage<java.lang.Void>
refresh(java.lang.Object entity)
Refresh the entity instance state from the database.java.util.concurrent.CompletionStage<java.lang.Void>
refresh(java.lang.Object... entities)
Refresh the entity instance state from the database.java.util.concurrent.CompletionStage<java.lang.Void>
refresh(java.lang.Object entity, org.hibernate.LockMode lockMode)
Refresh the entity instance state from the database.java.util.concurrent.CompletionStage<java.lang.Void>
update(int batchSize, java.lang.Object... entities)
Update multiple rows.java.util.concurrent.CompletionStage<java.lang.Void>
update(java.lang.Object entity)
Update a row.java.util.concurrent.CompletionStage<java.lang.Void>
update(java.lang.Object... entities)
Update multiple rows.<T> java.util.concurrent.CompletionStage<T>
withTransaction(java.util.function.Function<Stage.Transaction,java.util.concurrent.CompletionStage<T>> work)
Performs the given work within the scope of a database transaction, automatically flushing the session.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.reactive.stage.Stage.StatelessSession
get, refresh
-
-
-
-
Constructor Detail
-
StageStatelessSessionImpl
public StageStatelessSessionImpl(ReactiveStatelessSession delegate)
-
-
Method Detail
-
getReactiveConnection
public ReactiveConnection getReactiveConnection()
-
get
public <T> java.util.concurrent.CompletionStage<T> get(java.lang.Class<T> entityClass, java.lang.Object id)
Description copied from interface:Stage.StatelessSession
Retrieve a row.- Specified by:
get
in interfaceStage.StatelessSession
- Parameters:
entityClass
- The class of the entity to retrieveid
- The id of the entity to retrieve- Returns:
- a detached entity instance, via a
CompletionStage
- See Also:
StatelessSession.get(Class, Object)
-
get
public <T> java.util.concurrent.CompletionStage<T> get(java.lang.Class<T> entityClass, java.lang.Object id, org.hibernate.LockMode lockMode)
Description copied from interface:Stage.StatelessSession
Retrieve a row, obtaining the specified lock mode.- Specified by:
get
in interfaceStage.StatelessSession
- Parameters:
entityClass
- The class of the entity to retrieveid
- The id of the entity to retrievelockMode
- The lock mode to apply to the entity- Returns:
- a detached entity instance, via a
CompletionStage
- See Also:
StatelessSession.get(Class, Object, LockMode)
-
insert
public java.util.concurrent.CompletionStage<java.lang.Void> insert(java.lang.Object entity)
Description copied from interface:Stage.StatelessSession
Insert a row.- Specified by:
insert
in interfaceStage.StatelessSession
- Parameters:
entity
- a new transient instance- See Also:
StatelessSession.insert(Object)
-
insert
public java.util.concurrent.CompletionStage<java.lang.Void> insert(java.lang.Object... entities)
Description copied from interface:Stage.StatelessSession
Insert multiple rows.- Specified by:
insert
in interfaceStage.StatelessSession
- Parameters:
entities
- new transient instances- See Also:
StatelessSession.insert(Object)
-
insert
public java.util.concurrent.CompletionStage<java.lang.Void> insert(int batchSize, java.lang.Object... entities)
Description copied from interface:Stage.StatelessSession
Insert multiple rows.- Specified by:
insert
in interfaceStage.StatelessSession
- Parameters:
batchSize
- the batch sizeentities
- new transient instances- See Also:
StatelessSession.insert(Object)
-
delete
public java.util.concurrent.CompletionStage<java.lang.Void> delete(java.lang.Object entity)
Description copied from interface:Stage.StatelessSession
Delete a row.- Specified by:
delete
in interfaceStage.StatelessSession
- Parameters:
entity
- a detached entity instance- See Also:
StatelessSession.delete(Object)
-
delete
public java.util.concurrent.CompletionStage<java.lang.Void> delete(java.lang.Object... entities)
Description copied from interface:Stage.StatelessSession
Delete multiple rows.- Specified by:
delete
in interfaceStage.StatelessSession
- Parameters:
entities
- detached entity instances- See Also:
StatelessSession.delete(Object)
-
delete
public java.util.concurrent.CompletionStage<java.lang.Void> delete(int batchSize, java.lang.Object... entities)
Description copied from interface:Stage.StatelessSession
Delete multiple rows.- Specified by:
delete
in interfaceStage.StatelessSession
- Parameters:
batchSize
- the batch sizeentities
- detached entity instances- See Also:
StatelessSession.delete(Object)
-
update
public java.util.concurrent.CompletionStage<java.lang.Void> update(java.lang.Object entity)
Description copied from interface:Stage.StatelessSession
Update a row.- Specified by:
update
in interfaceStage.StatelessSession
- Parameters:
entity
- a detached entity instance- See Also:
StatelessSession.update(Object)
-
update
public java.util.concurrent.CompletionStage<java.lang.Void> update(java.lang.Object... entities)
Description copied from interface:Stage.StatelessSession
Update multiple rows.- Specified by:
update
in interfaceStage.StatelessSession
- Parameters:
entities
- a detached entity instance- See Also:
StatelessSession.update(Object)
-
update
public java.util.concurrent.CompletionStage<java.lang.Void> update(int batchSize, java.lang.Object... entities)
Description copied from interface:Stage.StatelessSession
Update multiple rows.- Specified by:
update
in interfaceStage.StatelessSession
- Parameters:
batchSize
- the batch sizeentities
- a detached entity instance- See Also:
StatelessSession.update(Object)
-
refresh
public java.util.concurrent.CompletionStage<java.lang.Void> refresh(java.lang.Object entity)
Description copied from interface:Stage.StatelessSession
Refresh the entity instance state from the database.- Specified by:
refresh
in interfaceStage.StatelessSession
- Parameters:
entity
- The entity to be refreshed.- See Also:
StatelessSession.refresh(Object)
-
refresh
public java.util.concurrent.CompletionStage<java.lang.Void> refresh(java.lang.Object... entities)
Description copied from interface:Stage.StatelessSession
Refresh the entity instance state from the database.- Specified by:
refresh
in interfaceStage.StatelessSession
- Parameters:
entities
- The entities to be refreshed.- See Also:
StatelessSession.refresh(Object)
-
refresh
public java.util.concurrent.CompletionStage<java.lang.Void> refresh(int batchSize, java.lang.Object... entities)
Description copied from interface:Stage.StatelessSession
Refresh the entity instance state from the database.- Specified by:
refresh
in interfaceStage.StatelessSession
- Parameters:
batchSize
- the batch sizeentities
- The entities to be refreshed.- See Also:
StatelessSession.refresh(Object)
-
refresh
public java.util.concurrent.CompletionStage<java.lang.Void> refresh(java.lang.Object entity, org.hibernate.LockMode lockMode)
Description copied from interface:Stage.StatelessSession
Refresh the entity instance state from the database.- Specified by:
refresh
in interfaceStage.StatelessSession
- Parameters:
entity
- The entity to be refreshed.lockMode
- The LockMode to be applied.- See Also:
StatelessSession.refresh(Object, LockMode)
-
fetch
public <T> java.util.concurrent.CompletionStage<T> fetch(T association)
Description copied from interface:Stage.StatelessSession
Asynchronously fetch an association that's configured for lazy loading.session.fetch(author.getBook()).thenAccept(book -> print(book.getTitle()))
- Specified by:
fetch
in interfaceStage.StatelessSession
- Parameters:
association
- a lazy-loaded association- Returns:
- the fetched association, via a
CompletionStage
- See Also:
Hibernate.initialize(Object)
-
withTransaction
public <T> java.util.concurrent.CompletionStage<T> withTransaction(java.util.function.Function<Stage.Transaction,java.util.concurrent.CompletionStage<T>> work)
Description copied from interface:Stage.StatelessSession
Performs the given work within the scope of a database transaction, automatically flushing the session. The transaction will be rolled back if the work completes with an uncaught exception, or ifStage.Transaction.markForRollback()
is called.- If there is already a transaction associated with this session, the work is executed in the context of the existing transaction, and no new transaction is initiated.
- If there is no transaction associated with this session, a new transaction is started, and the work is executed in the context of the new transaction.
- Specified by:
withTransaction
in interfaceStage.StatelessSession
- Parameters:
work
- a function which acceptsStage.Transaction
and returns the result of the work as aCompletionStage
.- See Also:
Stage.SessionFactory.withTransaction(BiFunction)
-
close
public java.util.concurrent.CompletionStage<java.lang.Void> close()
Description copied from interface:Stage.StatelessSession
Close the reactive session and release the underlying database connection.- Specified by:
close
in interfaceStage.Closeable
- Specified by:
close
in interfaceStage.StatelessSession
-
isOpen
public boolean isOpen()
- Specified by:
isOpen
in interfaceStage.StatelessSession
- Returns:
- false if
Stage.StatelessSession.close()
has been called
-
getFactory
public Stage.SessionFactory getFactory()
Description copied from interface:Stage.StatelessSession
TheStage.SessionFactory
which created this session.- Specified by:
getFactory
in interfaceStage.StatelessSession
-
currentTransaction
public Stage.Transaction currentTransaction()
Description copied from interface:Stage.StatelessSession
Obtain the transaction currently associated with this session, if any.- Specified by:
currentTransaction
in interfaceStage.StatelessSession
- Returns:
- the
Stage.Transaction
, or null if no transaction was started usingStage.StatelessSession.withTransaction(Function)
. - See Also:
Stage.StatelessSession.withTransaction(Function)
,Stage.SessionFactory.withTransaction(BiFunction)
-
get
public <T> java.util.concurrent.CompletionStage<T> get(jakarta.persistence.EntityGraph<T> entityGraph, java.lang.Object id)
Description copied from interface:Stage.StatelessSession
Retrieve a row, using the givenEntityGraph
as a fetch plan.- Specified by:
get
in interfaceStage.StatelessSession
- Parameters:
entityGraph
- anEntityGraph
specifying the entity and associations to be fetchedid
- The id of the entity to retrieve- Returns:
- a detached entity instance, via a
CompletionStage
-
createQuery
public <R> Stage.Query<R> createQuery(java.lang.String queryString)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.Query
for the given HQL/JPQL query string or HQL/JPQL update or delete statement. In the case of an update or delete, the returnedStage.Query
must be executed usingStage.MutationQuery.executeUpdate()
which returns an affected row count.- Specified by:
createQuery
in interfaceStage.StatelessSession
- Parameters:
queryString
- The HQL/JPQL query, update or delete statement- Returns:
- The
Stage.Query
instance for manipulation and execution - See Also:
Session.createQuery(String)
-
createQuery
public <R> Stage.SelectionQuery<R> createQuery(java.lang.String queryString, java.lang.Class<R> resultType)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.SelectionQuery
for the given HQL/JPQL query string and query result type.- Specified by:
createQuery
in interfaceStage.StatelessSession
- Parameters:
queryString
- The HQL/JPQL queryresultType
- the Java type returned in each row of query results- Returns:
- The
Stage.Query
instance for manipulation and execution - See Also:
Session.createQuery(String, Class)
-
createNativeQuery
public <R> Stage.Query<R> createNativeQuery(java.lang.String queryString)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.Query
for the given SQL query string, or SQL update, insert, or delete statement. In the case of an update, insert, or delete, the returnedStage.Query
must be executed usingStage.MutationQuery.executeUpdate()
which returns an affected row count.- Specified by:
createNativeQuery
in interfaceStage.StatelessSession
- Parameters:
queryString
- The SQL select, update, insert, or delete statement- See Also:
QueryProducer.createNativeQuery(String)
-
createNamedQuery
public <R> Stage.Query<R> createNamedQuery(java.lang.String queryName)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.Query
for the named query.- Specified by:
createNamedQuery
in interfaceStage.StatelessSession
- Parameters:
queryName
- The name of the query- Returns:
- The
Stage.Query
instance for manipulation and execution - See Also:
EntityManager.createQuery(String)
-
createNamedQuery
public <R> Stage.SelectionQuery<R> createNamedQuery(java.lang.String queryName, java.lang.Class<R> resultType)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.Query
for the named query.- Specified by:
createNamedQuery
in interfaceStage.StatelessSession
- Parameters:
queryName
- The name of the queryresultType
- the Java type returned in each row of query results- Returns:
- The
Stage.Query
instance for manipulation and execution - See Also:
EntityManager.createQuery(String, Class)
-
createNativeQuery
public <R> Stage.SelectionQuery<R> createNativeQuery(java.lang.String queryString, java.lang.Class<R> resultType)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.Query
for the given SQL query string, using the givenresultType
to interpret the results.- Specified by:
createNativeQuery
in interfaceStage.StatelessSession
- Parameters:
queryString
- The SQL queryresultType
- the Java type returned in each row of query results- Returns:
- The
Stage.Query
instance for manipulation and execution - See Also:
QueryProducer.createNativeQuery(String, Class)
-
createQuery
public <R> Stage.SelectionQuery<R> createQuery(jakarta.persistence.criteria.CriteriaQuery<R> criteriaQuery)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.SelectionQuery
for the given criteria query.- Specified by:
createQuery
in interfaceStage.StatelessSession
- Parameters:
criteriaQuery
- TheCriteriaQuery
- Returns:
- The
Stage.SelectionQuery
instance for manipulation and execution - See Also:
EntityManager.createQuery(String)
-
createQuery
public <R> Stage.MutationQuery createQuery(jakarta.persistence.criteria.CriteriaUpdate<R> criteriaUpdate)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.MutationQuery
for the given criteria update.- Specified by:
createQuery
in interfaceStage.StatelessSession
- Parameters:
criteriaUpdate
- TheCriteriaUpdate
- Returns:
- The
Stage.MutationQuery
instance for manipulation and execution - See Also:
EntityManager.createQuery(String)
-
createQuery
public <R> Stage.MutationQuery createQuery(jakarta.persistence.criteria.CriteriaDelete<R> criteriaDelete)
Description copied from interface:Stage.StatelessSession
Create an instance ofStage.MutationQuery
for the given criteria delete.- Specified by:
createQuery
in interfaceStage.StatelessSession
- Parameters:
criteriaDelete
- TheCriteriaDelete
- Returns:
- The
Stage.MutationQuery
instance for manipulation and execution - See Also:
EntityManager.createQuery(String)
-
getResultSetMapping
public <T> ResultSetMapping<T> getResultSetMapping(java.lang.Class<T> resultType, java.lang.String mappingName)
Description copied from interface:Stage.StatelessSession
Obtain a native SQL result set mapping defined via the annotationSqlResultSetMapping
.- Specified by:
getResultSetMapping
in interfaceStage.StatelessSession
-
getEntityGraph
public <T> jakarta.persistence.EntityGraph<T> getEntityGraph(java.lang.Class<T> rootType, java.lang.String graphName)
Description copied from interface:Stage.StatelessSession
Obtain a namedEntityGraph
- Specified by:
getEntityGraph
in interfaceStage.StatelessSession
-
createEntityGraph
public <T> jakarta.persistence.EntityGraph<T> createEntityGraph(java.lang.Class<T> rootType)
Description copied from interface:Stage.StatelessSession
Create a new mutableEntityGraph
- Specified by:
createEntityGraph
in interfaceStage.StatelessSession
-
createEntityGraph
public <T> jakarta.persistence.EntityGraph<T> createEntityGraph(java.lang.Class<T> rootType, java.lang.String graphName)
Description copied from interface:Stage.StatelessSession
Create a new mutable copy of a namedEntityGraph
- Specified by:
createEntityGraph
in interfaceStage.StatelessSession
-
-