Interface Mutiny.SessionFactory
-
- All Superinterfaces:
AutoCloseable
- Enclosing interface:
- Mutiny
public static interface Mutiny.SessionFactory extends AutoCloseable
Factory forreactive sessions.A
Mutiny.SessionFactorymay be obtained from an instance ofEntityManagerFactoryas follows:Mutiny.SessionFactory sessionFactory = createEntityManagerFactory("example") .unwrap(Mutiny.SessionFactory.class);Here, configuration properties must be specified in
persistence.xml.Alternatively, a
Mutiny.SessionFactorymay be obtained via programmatic configuration of Hibernate using:Configuration configuration = new Configuration(); ... Mutiny.SessionFactory sessionFactory = configuration.buildSessionFactory( new ReactiveServiceRegistryBuilder() .applySettings( configuration.getProperties() ) .build() ) .unwrap(Mutiny.SessionFactory.class);
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidclose()Destroy the session factory and clean up its connection pool.CachegetCache()Obtain theCacheobject for managing the second-level cache.jakarta.persistence.criteria.CriteriaBuildergetCriteriaBuilder()jakarta.persistence.metamodel.MetamodelgetMetamodel()Obtain the JPAMetamodelfor the persistence unit.StatisticsgetStatistics()Obtain theStatisticsobject exposing factory-level metrics.booleanisOpen()io.smallrye.mutiny.Uni<Mutiny.Session>openSession()Obtain a newreactive sessionUni, the main interaction point between the user's program and Hibernate Reactive.io.smallrye.mutiny.Uni<Mutiny.Session>openSession(String tenantId)Obtain a newreactive sessionUnifor a specified tenant.io.smallrye.mutiny.Uni<Mutiny.StatelessSession>openStatelessSession()Obtain areactive stateless sessionUni.io.smallrye.mutiny.Uni<Mutiny.StatelessSession>openStatelessSession(String tenantId)Obtain areactive stateless sessionUni.<T> io.smallrye.mutiny.Uni<T>withSession(String tenantId, Function<Mutiny.Session,io.smallrye.mutiny.Uni<T>> work)Perform work using areactive sessionfor a specified tenant.<T> io.smallrye.mutiny.Uni<T>withSession(Function<Mutiny.Session,io.smallrye.mutiny.Uni<T>> work)Perform work using areactive session.<T> io.smallrye.mutiny.Uni<T>withStatelessSession(String tenantId, Function<Mutiny.StatelessSession,io.smallrye.mutiny.Uni<T>> work)Perform work using astateless session.<T> io.smallrye.mutiny.Uni<T>withStatelessSession(Function<Mutiny.StatelessSession,io.smallrye.mutiny.Uni<T>> work)Perform work using astateless session.<T> io.smallrye.mutiny.Uni<T>withStatelessTransaction(String tenantId, BiFunction<Mutiny.StatelessSession,Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)Perform work using areactive sessionfor a specified tenant within an associatedtransaction.<T> io.smallrye.mutiny.Uni<T>withStatelessTransaction(BiFunction<Mutiny.StatelessSession,Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)Perform work using areactive sessionwithin an associatedtransaction.default <T> io.smallrye.mutiny.Uni<T>withStatelessTransaction(Function<Mutiny.StatelessSession,io.smallrye.mutiny.Uni<T>> work)Perform work using areactive sessionwithin an associatedtransaction.<T> io.smallrye.mutiny.Uni<T>withTransaction(String tenantId, BiFunction<Mutiny.Session,Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)Perform work using areactive sessionfor a specified tenant within an associatedtransaction.<T> io.smallrye.mutiny.Uni<T>withTransaction(BiFunction<Mutiny.Session,Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)Perform work using areactive sessionwithin an associatedtransaction.default <T> io.smallrye.mutiny.Uni<T>withTransaction(Function<Mutiny.Session,io.smallrye.mutiny.Uni<T>> work)Perform work using areactive sessionwithin an associated transaction.
-
-
-
Method Detail
-
openSession
io.smallrye.mutiny.Uni<Mutiny.Session> openSession()
Obtain a newreactive sessionUni, the main interaction point between the user's program and Hibernate Reactive.When the
Unicompletes successfully it returns a newly created session.The client must explicitly close the session by calling
Mutiny.Closeable.close().- See Also:
withSession(Function)
-
openSession
io.smallrye.mutiny.Uni<Mutiny.Session> openSession(String tenantId)
Obtain a newreactive sessionUnifor a specified tenant.When the
Unicompletes successfully it returns a newly created session.The client must explicitly close the session by calling
Mutiny.Closeable.close().- Parameters:
tenantId- the id of the tenant- See Also:
withSession(Function)
-
openStatelessSession
io.smallrye.mutiny.Uni<Mutiny.StatelessSession> openStatelessSession()
Obtain areactive stateless sessionUni.When the
Unicompletes successfully it returns a newly created session.The client must explicitly close the session by calling
Mutiny.StatelessSession.close().- See Also:
withStatelessSession(Function)
-
openStatelessSession
io.smallrye.mutiny.Uni<Mutiny.StatelessSession> openStatelessSession(String tenantId)
Obtain areactive stateless sessionUni.When the
Unicompletes successfully it returns a newly created session.The client must explicitly close the session by calling
Mutiny.StatelessSession.close().- Parameters:
tenantId- the id of the tenant- See Also:
withStatelessSession(String, Function)
-
withSession
<T> io.smallrye.mutiny.Uni<T> withSession(Function<Mutiny.Session,io.smallrye.mutiny.Uni<T>> work)
Perform work using areactive session.- If there is already a session associated with the current reactive stream, then the work will be executed using that session.
- Otherwise, if there is no session associated with the current stream, a new session will be created.
The session will be closed automatically, but must be flushed explicitly if necessary.
- Parameters:
work- a function which accepts the session and returns the result of the work as aUni.
-
withSession
<T> io.smallrye.mutiny.Uni<T> withSession(String tenantId, Function<Mutiny.Session,io.smallrye.mutiny.Uni<T>> work)
Perform work using areactive sessionfor a specified tenant.- If there is already a session associated with the current reactive stream, and the given tenant, then the work will be executed using that session.
- Otherwise, a new session will be created.
The session will be closed automatically, but must be flushed explicitly if necessary.
- Parameters:
tenantId- the id of the tenantwork- a function which accepts the session and returns the result of the work as aUni.
-
withTransaction
<T> io.smallrye.mutiny.Uni<T> withTransaction(BiFunction<Mutiny.Session,Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)
Perform work using areactive sessionwithin an associatedtransaction.- If there is already a session associated with the current reactive stream, then the work will be executed using that session.
- Otherwise, if there is no session associated with the current stream, a new session will be created.
The session will be
flushedand closed automatically, and the transaction committed automatically.- Parameters:
work- a function which accepts the session and transaction and returns the result of the work as aUni.- See Also:
withSession(Function),Mutiny.Session.withTransaction(Function)
-
withTransaction
default <T> io.smallrye.mutiny.Uni<T> withTransaction(Function<Mutiny.Session,io.smallrye.mutiny.Uni<T>> work)
Perform work using areactive sessionwithin an associated transaction.- If there is already a session associated with the current reactive stream, then the work will be executed using that session.
- Otherwise, if there is no session associated with the current stream, a new session will be created.
The session will be
flushedand closed automatically, and the transaction committed automatically.- Parameters:
work- a function which accepts the session and returns the result of the work as aUni.- See Also:
withTransaction(BiFunction),Mutiny.Session.withTransaction(Function)
-
withStatelessTransaction
default <T> io.smallrye.mutiny.Uni<T> withStatelessTransaction(Function<Mutiny.StatelessSession,io.smallrye.mutiny.Uni<T>> work)
Perform work using areactive sessionwithin an associatedtransaction.- If there is already a stateless session associated with the current reactive stream, then the work will be executed using that session.
- Otherwise, if there is no stateless session associated with the current stream, a new stateless session will be created.
The session will be closed automatically and the transaction committed automatically.
- Parameters:
work- a function which accepts the stateless session and returns the result of the work as aUni.- See Also:
withStatelessSession(Function),Mutiny.StatelessSession.withTransaction(Function)
-
withStatelessTransaction
<T> io.smallrye.mutiny.Uni<T> withStatelessTransaction(BiFunction<Mutiny.StatelessSession,Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)
Perform work using areactive sessionwithin an associatedtransaction.- If there is already a stateless session associated with the current reactive stream, then the work will be executed using that session.
- Otherwise, if there is no stateless session associated with the current stream, a new stateless session will be created.
The session will be closed automatically and the transaction committed automatically.
- Parameters:
work- a function which accepts the stateless session and returns the result of the work as aUni.- See Also:
withStatelessSession(Function),Mutiny.StatelessSession.withTransaction(Function)
-
withStatelessSession
<T> io.smallrye.mutiny.Uni<T> withStatelessSession(Function<Mutiny.StatelessSession,io.smallrye.mutiny.Uni<T>> work)
Perform work using astateless session.- If there is already a stateless session associated with the current reactive stream, then the work will be executed using that session.
- Otherwise, if there is no stateless session associated with the current stream, a new stateless session will be created.
The session will be closed automatically.
- Parameters:
work- a function which accepts the session and returns the result of the work as aUni.
-
withStatelessSession
<T> io.smallrye.mutiny.Uni<T> withStatelessSession(String tenantId, Function<Mutiny.StatelessSession,io.smallrye.mutiny.Uni<T>> work)
Perform work using astateless session.- If there is already a stateless session associated with the current reactive stream and given tenant id, then the work will be executed using that session.
- Otherwise, if there is no stateless session associated with the current stream and given tenant id, a new stateless session will be created.
The session will be closed automatically.
- Parameters:
tenantId- the id of the tenantwork- a function which accepts the session and returns the result of the work as aUni.
-
withTransaction
<T> io.smallrye.mutiny.Uni<T> withTransaction(String tenantId, BiFunction<Mutiny.Session,Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)
Perform work using areactive sessionfor a specified tenant within an associatedtransaction.- If there is already a session associated with the current reactive stream and given tenant id, then the work will be executed using that session.
- Otherwise, if there is no session associated with the current stream and given tenant id, a new stateless session will be created.
The session will be
flushedand closed automatically, and the transaction committed automatically.- Parameters:
tenantId- the id of the tenantwork- a function which accepts the session and returns the result of the work as aUni.- See Also:
withSession(String, Function),Mutiny.Session.withTransaction(Function)
-
withStatelessTransaction
<T> io.smallrye.mutiny.Uni<T> withStatelessTransaction(String tenantId, BiFunction<Mutiny.StatelessSession,Mutiny.Transaction,io.smallrye.mutiny.Uni<T>> work)
Perform work using areactive sessionfor a specified tenant within an associatedtransaction.- If there is already a stateless session associated with the current reactive stream and given tenant id, then the work will be executed using that session.
- Otherwise, if there is no stateless session associated with the current stream and given tenant id, a new stateless session will be created.
The session will be closed automatically and the transaction committed automatically.
- Parameters:
tenantId- the id of the tenantwork- a function which accepts the stateless session and returns the result of the work as aUni.- See Also:
withStatelessSession(String, Function),Mutiny.StatelessSession.withTransaction(Function)
-
getCriteriaBuilder
jakarta.persistence.criteria.CriteriaBuilder getCriteriaBuilder()
- Returns:
- an instance of
CriteriaBuilderfor creating criteria queries.
-
getMetamodel
jakarta.persistence.metamodel.Metamodel getMetamodel()
Obtain the JPAMetamodelfor the persistence unit.
-
getStatistics
Statistics getStatistics()
Obtain theStatisticsobject exposing factory-level metrics.
-
close
void close()
Destroy the session factory and clean up its connection pool.- Specified by:
closein interfaceAutoCloseable
-
isOpen
boolean isOpen()
- Returns:
- false if
close()has been called
-
-