public class MutinyStatelessSessionImpl extends java.lang.Object implements Mutiny.StatelessSession
Mutiny.StatelessSession
API. This delegating
class is needed to avoid name clashes when implementing both
StatelessSession
and StatelessSession
.Constructor and Description |
---|
MutinyStatelessSessionImpl(ReactiveStatelessSession delegate,
MutinySessionFactoryImpl factory) |
Modifier and Type | Method and Description |
---|---|
io.smallrye.mutiny.Uni<java.lang.Void> |
close()
Close the reactive session and release the underlying database
connection.
|
<T> javax.persistence.EntityGraph<T> |
createEntityGraph(java.lang.Class<T> entity)
Create a new mutable
EntityGraph |
<T> javax.persistence.EntityGraph<T> |
createEntityGraph(java.lang.Class<T> entity,
java.lang.String name)
Create a new mutable copy of a named
EntityGraph |
<R> Mutiny.Query<R> |
createNamedQuery(java.lang.String name)
Create an instance of
Mutiny.Query for the named query. |
<R> Mutiny.Query<R> |
createNamedQuery(java.lang.String name,
java.lang.Class<R> resultType)
Create an instance of
Mutiny.Query for the named query. |
<R> Mutiny.Query<R> |
createNativeQuery(java.lang.String queryString)
Create an instance of
Mutiny.Query for the given SQL query string,
or SQL update, insert, or delete statement. |
<R> Mutiny.Query<R> |
createNativeQuery(java.lang.String queryString,
java.lang.Class<R> resultType)
Create an instance of
Mutiny.Query for the given SQL query string,
using the given resultType to interpret the results. |
<R> Mutiny.Query<R> |
createNativeQuery(java.lang.String queryString,
ResultSetMapping<R> resultSetMapping)
Create an instance of
Mutiny.Query for the given SQL query string,
using the given ResultSetMapping to interpret the result set. |
<R> Mutiny.Query<R> |
createQuery(javax.persistence.criteria.CriteriaDelete<R> criteriaDelete)
Create an instance of
Mutiny.Query for the given criteria delete. |
<R> Mutiny.Query<R> |
createQuery(javax.persistence.criteria.CriteriaQuery<R> criteriaQuery)
Create an instance of
Mutiny.Query for the given criteria query. |
<R> Mutiny.Query<R> |
createQuery(javax.persistence.criteria.CriteriaUpdate<R> criteriaUpdate)
Create an instance of
Mutiny.Query for the given criteria update. |
<R> Mutiny.Query<R> |
createQuery(java.lang.String queryString)
Create an instance of
Mutiny.Query for the given HQL/JPQL query
string or HQL/JPQL update or delete statement. |
<R> Mutiny.Query<R> |
createQuery(java.lang.String queryString,
java.lang.Class<R> resultType)
Create an instance of
Mutiny.Query for the given HQL/JPQL query
string. |
Mutiny.Transaction |
currentTransaction()
Obtain the transaction currently associated with this session,
if any.
|
io.smallrye.mutiny.Uni<java.lang.Void> |
delete(java.lang.Object entity)
Delete a row.
|
io.smallrye.mutiny.Uni<java.lang.Void> |
deleteAll(java.lang.Object... entities)
Delete multiple rows.
|
<T> io.smallrye.mutiny.Uni<T> |
fetch(T association)
Asynchronously fetch an association that's configured for lazy loading.
|
<T> io.smallrye.mutiny.Uni<T> |
get(java.lang.Class<T> entityClass,
java.lang.Object id)
Retrieve a row.
|
<T> io.smallrye.mutiny.Uni<T> |
get(java.lang.Class<T> entityClass,
java.lang.Object id,
org.hibernate.LockMode lockMode)
Retrieve a row, obtaining the specified lock mode.
|
<T> io.smallrye.mutiny.Uni<T> |
get(javax.persistence.EntityGraph<T> entityGraph,
java.lang.Object id)
Retrieve a row, using the given
EntityGraph as a fetch plan. |
<T> javax.persistence.EntityGraph<T> |
getEntityGraph(java.lang.Class<T> entity,
java.lang.String name)
Obtain a named
EntityGraph |
<T> ResultSetMapping<T> |
getResultSetMapping(java.lang.Class<T> resultType,
java.lang.String mappingName)
Obtain a native SQL result set mapping defined via the annotation
SqlResultSetMapping . |
io.smallrye.mutiny.Uni<java.lang.Void> |
insert(java.lang.Object entity)
Insert a row.
|
io.smallrye.mutiny.Uni<java.lang.Void> |
insertAll(java.lang.Object... entities)
Insert multiple rows.
|
boolean |
isOpen() |
io.smallrye.mutiny.Uni<java.lang.Void> |
refresh(java.lang.Object entity)
Refresh the entity instance state from the database.
|
io.smallrye.mutiny.Uni<java.lang.Void> |
refresh(java.lang.Object entity,
org.hibernate.LockMode lockMode)
Refresh the entity instance state from the database.
|
io.smallrye.mutiny.Uni<java.lang.Void> |
refreshAll(java.lang.Object... entities)
Refresh the entity instance state from the database.
|
io.smallrye.mutiny.Uni<java.lang.Void> |
update(java.lang.Object entity)
Update a row.
|
io.smallrye.mutiny.Uni<java.lang.Void> |
updateAll(java.lang.Object... entities)
Update multiple rows.
|
<T> io.smallrye.mutiny.Uni<T> |
withTransaction(java.util.function.Function<Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)
Performs the given work within the scope of a database transaction,
automatically flushing the session.
|
public MutinyStatelessSessionImpl(ReactiveStatelessSession delegate, MutinySessionFactoryImpl factory)
public <T> io.smallrye.mutiny.Uni<T> get(java.lang.Class<T> entityClass, java.lang.Object id)
Mutiny.StatelessSession
get
in interface Mutiny.StatelessSession
entityClass
- The class of the entity to retrieveid
- The id of the entity to retrieveUni
StatelessSession.get(Class, Serializable)
public <T> io.smallrye.mutiny.Uni<T> get(java.lang.Class<T> entityClass, java.lang.Object id, org.hibernate.LockMode lockMode)
Mutiny.StatelessSession
get
in interface Mutiny.StatelessSession
entityClass
- The class of the entity to retrieveid
- The id of the entity to retrievelockMode
- The lock mode to apply to the entityUni
StatelessSession.get(Class, Serializable, LockMode)
public <T> io.smallrye.mutiny.Uni<T> get(javax.persistence.EntityGraph<T> entityGraph, java.lang.Object id)
Mutiny.StatelessSession
EntityGraph
as a fetch plan.get
in interface Mutiny.StatelessSession
entityGraph
- an EntityGraph
specifying the entity
and associations to be fetchedid
- The id of the entity to retrieveUni
public <R> Mutiny.Query<R> createQuery(java.lang.String queryString)
Mutiny.StatelessSession
Mutiny.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 Mutiny.Query
must be executed using
Mutiny.Query.executeUpdate()
which returns an affected row count.createQuery
in interface Mutiny.StatelessSession
queryString
- The HQL/JPQL query, update or delete statementMutiny.Query
instance for manipulation and executionMutiny.Session.createQuery(String)
public <R> Mutiny.Query<R> createQuery(java.lang.String queryString, java.lang.Class<R> resultType)
Mutiny.StatelessSession
Mutiny.Query
for the given HQL/JPQL query
string.createQuery
in interface Mutiny.StatelessSession
queryString
- The HQL/JPQL queryresultType
- the Java type returned in each row of query resultsMutiny.Query
instance for manipulation and executionMutiny.Session.createQuery(String, Class)
public <R> Mutiny.Query<R> createNativeQuery(java.lang.String queryString)
Mutiny.StatelessSession
Mutiny.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 Mutiny.Query
must be executed using
Mutiny.Query.executeUpdate()
which returns an affected row count.createNativeQuery
in interface Mutiny.StatelessSession
queryString
- The SQL select, update, insert, or delete statementMutiny.Session.createNativeQuery(String)
public <R> Mutiny.Query<R> createNativeQuery(java.lang.String queryString, java.lang.Class<R> resultType)
Mutiny.StatelessSession
Mutiny.Query
for the given SQL query string,
using the given resultType
to interpret the results.createNativeQuery
in interface Mutiny.StatelessSession
queryString
- The SQL queryresultType
- the Java type returned in each row of query resultsMutiny.Query
instance for manipulation and executionMutiny.Session.createNativeQuery(String, Class)
public <R> Mutiny.Query<R> createNativeQuery(java.lang.String queryString, ResultSetMapping<R> resultSetMapping)
Mutiny.StatelessSession
Mutiny.Query
for the given SQL query string,
using the given ResultSetMapping
to interpret the result set.createNativeQuery
in interface Mutiny.StatelessSession
queryString
- The SQL queryresultSetMapping
- the result set mappingMutiny.Query
instance for manipulation and executionMutiny.Session.createNativeQuery(String, ResultSetMapping)
public <R> Mutiny.Query<R> createNamedQuery(java.lang.String name)
Mutiny.StatelessSession
Mutiny.Query
for the named query.createNamedQuery
in interface Mutiny.StatelessSession
name
- The name of the queryMutiny.Query
instance for manipulation and executionEntityManager.createQuery(String)
public <R> Mutiny.Query<R> createNamedQuery(java.lang.String name, java.lang.Class<R> resultType)
Mutiny.StatelessSession
Mutiny.Query
for the named query.createNamedQuery
in interface Mutiny.StatelessSession
name
- The name of the queryresultType
- the Java type returned in each row of query resultsMutiny.Query
instance for manipulation and executionEntityManager.createQuery(String, Class)
public <R> Mutiny.Query<R> createQuery(javax.persistence.criteria.CriteriaQuery<R> criteriaQuery)
Mutiny.StatelessSession
Mutiny.Query
for the given criteria query.createQuery
in interface Mutiny.StatelessSession
criteriaQuery
- The CriteriaQuery
Mutiny.Query
instance for manipulation and executionEntityManager.createQuery(String)
public <R> Mutiny.Query<R> createQuery(javax.persistence.criteria.CriteriaUpdate<R> criteriaUpdate)
Mutiny.StatelessSession
Mutiny.Query
for the given criteria update.createQuery
in interface Mutiny.StatelessSession
criteriaUpdate
- The CriteriaUpdate
Mutiny.Query
instance for manipulation and executionEntityManager.createQuery(String)
public <R> Mutiny.Query<R> createQuery(javax.persistence.criteria.CriteriaDelete<R> criteriaDelete)
Mutiny.StatelessSession
Mutiny.Query
for the given criteria delete.createQuery
in interface Mutiny.StatelessSession
criteriaDelete
- The CriteriaDelete
Mutiny.Query
instance for manipulation and executionEntityManager.createQuery(String)
public io.smallrye.mutiny.Uni<java.lang.Void> insert(java.lang.Object entity)
Mutiny.StatelessSession
insert
in interface Mutiny.StatelessSession
entity
- a new transient instanceStatelessSession.insert(Object)
public io.smallrye.mutiny.Uni<java.lang.Void> insertAll(java.lang.Object... entities)
Mutiny.StatelessSession
insertAll
in interface Mutiny.StatelessSession
entities
- new transient instancesStatelessSession.insert(Object)
public io.smallrye.mutiny.Uni<java.lang.Void> delete(java.lang.Object entity)
Mutiny.StatelessSession
delete
in interface Mutiny.StatelessSession
entity
- a detached entity instanceStatelessSession.delete(Object)
public io.smallrye.mutiny.Uni<java.lang.Void> deleteAll(java.lang.Object... entities)
Mutiny.StatelessSession
deleteAll
in interface Mutiny.StatelessSession
entities
- detached entity instancesStatelessSession.delete(Object)
public io.smallrye.mutiny.Uni<java.lang.Void> update(java.lang.Object entity)
Mutiny.StatelessSession
update
in interface Mutiny.StatelessSession
entity
- a detached entity instanceStatelessSession.update(Object)
public io.smallrye.mutiny.Uni<java.lang.Void> updateAll(java.lang.Object... entities)
Mutiny.StatelessSession
updateAll
in interface Mutiny.StatelessSession
entities
- detached entity instancesStatelessSession.update(Object)
public io.smallrye.mutiny.Uni<java.lang.Void> refresh(java.lang.Object entity)
Mutiny.StatelessSession
refresh
in interface Mutiny.StatelessSession
entity
- The entity to be refreshed.StatelessSession.refresh(Object)
public io.smallrye.mutiny.Uni<java.lang.Void> refreshAll(java.lang.Object... entities)
Mutiny.StatelessSession
refreshAll
in interface Mutiny.StatelessSession
entities
- The entities to be refreshed.StatelessSession.refresh(Object)
public io.smallrye.mutiny.Uni<java.lang.Void> refresh(java.lang.Object entity, org.hibernate.LockMode lockMode)
Mutiny.StatelessSession
refresh
in interface Mutiny.StatelessSession
entity
- The entity to be refreshed.lockMode
- The LockMode to be applied.StatelessSession.refresh(Object, LockMode)
public <T> io.smallrye.mutiny.Uni<T> fetch(T association)
Mutiny.StatelessSession
session.fetch(author.getBook()).thenAccept(book -> print(book.getTitle()))
Warning: this operation in a stateless session is quite sensitive to
data aliasing effects and should be used with great care.fetch
in interface Mutiny.StatelessSession
association
- a lazy-loaded associationCompletionStage
Hibernate.initialize(Object)
public <T> ResultSetMapping<T> getResultSetMapping(java.lang.Class<T> resultType, java.lang.String mappingName)
Mutiny.StatelessSession
SqlResultSetMapping
.getResultSetMapping
in interface Mutiny.StatelessSession
public <T> javax.persistence.EntityGraph<T> getEntityGraph(java.lang.Class<T> entity, java.lang.String name)
Mutiny.StatelessSession
EntityGraph
getEntityGraph
in interface Mutiny.StatelessSession
public <T> javax.persistence.EntityGraph<T> createEntityGraph(java.lang.Class<T> entity)
Mutiny.StatelessSession
EntityGraph
createEntityGraph
in interface Mutiny.StatelessSession
public <T> javax.persistence.EntityGraph<T> createEntityGraph(java.lang.Class<T> entity, java.lang.String name)
Mutiny.StatelessSession
EntityGraph
createEntityGraph
in interface Mutiny.StatelessSession
public <T> io.smallrye.mutiny.Uni<T> withTransaction(java.util.function.Function<Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)
Mutiny.StatelessSession
Mutiny.Transaction.markForRollback()
is called.
withTransaction
in interface Mutiny.StatelessSession
work
- a function which accepts Mutiny.Transaction
and returns
the result of the work as a Uni
.Mutiny.SessionFactory.withTransaction(BiFunction)
public Mutiny.Transaction currentTransaction()
Mutiny.StatelessSession
currentTransaction
in interface Mutiny.StatelessSession
Mutiny.Transaction
, or null if no transaction
was started using Mutiny.StatelessSession.withTransaction(Function)
.Mutiny.StatelessSession.withTransaction(Function)
,
Mutiny.SessionFactory.withTransaction(BiFunction)
public io.smallrye.mutiny.Uni<java.lang.Void> close()
Mutiny.StatelessSession
close
in interface Mutiny.Closeable
close
in interface Mutiny.StatelessSession
public boolean isOpen()
isOpen
in interface Mutiny.StatelessSession
Mutiny.StatelessSession.close()
has been called