Class MutinyStatelessSessionImpl

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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​(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.
      <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.
      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​(int batchSize, java.lang.Object... entities)
      Delete multiple rows.
      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
      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 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​(int batchSize, java.lang.Object... entities)
      Insert multiple rows using the specified batch size.
      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​(int batchSize, java.lang.Object... entities)
      Refresh the entity instance state from the database using the selected batch size.
      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​(int batchSize, java.lang.Object... entities)
      Update multiple rows.
      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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • get

        public <T> io.smallrye.mutiny.Uni<T> get​(java.lang.Class<T> entityClass,
                                                 java.lang.Object id)
        Description copied from interface: Mutiny.StatelessSession
        Retrieve a row.
        Specified by:
        get in interface Mutiny.StatelessSession
        Parameters:
        entityClass - The class of the entity to retrieve
        id - The id of the entity to retrieve
        Returns:
        a detached entity instance, via a Uni
        See Also:
        StatelessSession.get(Class, Serializable)
      • get

        public <T> io.smallrye.mutiny.Uni<T> get​(java.lang.Class<T> entityClass,
                                                 java.lang.Object id,
                                                 org.hibernate.LockMode lockMode)
        Description copied from interface: Mutiny.StatelessSession
        Retrieve a row, obtaining the specified lock mode.
        Specified by:
        get in interface Mutiny.StatelessSession
        Parameters:
        entityClass - The class of the entity to retrieve
        id - The id of the entity to retrieve
        lockMode - The lock mode to apply to the entity
        Returns:
        a detached entity instance, via a Uni
        See Also:
        StatelessSession.get(Class, Serializable, LockMode)
      • get

        public <T> io.smallrye.mutiny.Uni<T> get​(javax.persistence.EntityGraph<T> entityGraph,
                                                 java.lang.Object id)
        Description copied from interface: Mutiny.StatelessSession
        Retrieve a row, using the given EntityGraph as a fetch plan.
        Specified by:
        get in interface Mutiny.StatelessSession
        Parameters:
        entityGraph - an EntityGraph specifying the entity and associations to be fetched
        id - The id of the entity to retrieve
        Returns:
        a detached entity instance, via a Uni
      • createNamedQuery

        public <R> Mutiny.Query<R> createNamedQuery​(java.lang.String name,
                                                    java.lang.Class<R> resultType)
        Description copied from interface: Mutiny.StatelessSession
        Create an instance of Mutiny.Query for the named query.
        Specified by:
        createNamedQuery in interface Mutiny.StatelessSession
        Parameters:
        name - The name of the query
        resultType - the Java type returned in each row of query results
        Returns:
        The Mutiny.Query instance for manipulation and execution
        See Also:
        EntityManager.createQuery(String, Class)
      • createQuery

        public <R> Mutiny.Query<R> createQuery​(javax.persistence.criteria.CriteriaUpdate<R> criteriaUpdate)
        Description copied from interface: Mutiny.StatelessSession
        Create an instance of Mutiny.Query for the given criteria update.
        Specified by:
        createQuery in interface Mutiny.StatelessSession
        Parameters:
        criteriaUpdate - The CriteriaUpdate
        Returns:
        The Mutiny.Query instance for manipulation and execution
        See Also:
        EntityManager.createQuery(String)
      • createQuery

        public <R> Mutiny.Query<R> createQuery​(javax.persistence.criteria.CriteriaDelete<R> criteriaDelete)
        Description copied from interface: Mutiny.StatelessSession
        Create an instance of Mutiny.Query for the given criteria delete.
        Specified by:
        createQuery in interface Mutiny.StatelessSession
        Parameters:
        criteriaDelete - The CriteriaDelete
        Returns:
        The Mutiny.Query instance for manipulation and execution
        See Also:
        EntityManager.createQuery(String)
      • insert

        public io.smallrye.mutiny.Uni<java.lang.Void> insert​(java.lang.Object entity)
        Description copied from interface: Mutiny.StatelessSession
        Insert a row.
        Specified by:
        insert in interface Mutiny.StatelessSession
        Parameters:
        entity - a new transient instance
        See Also:
        StatelessSession.insert(Object)
      • insertAll

        public io.smallrye.mutiny.Uni<java.lang.Void> insertAll​(java.lang.Object... entities)
        Description copied from interface: Mutiny.StatelessSession
        Insert multiple rows.
        Specified by:
        insertAll in interface Mutiny.StatelessSession
        Parameters:
        entities - new transient instances
        See Also:
        StatelessSession.insert(Object)
      • insertAll

        public io.smallrye.mutiny.Uni<java.lang.Void> insertAll​(int batchSize,
                                                                java.lang.Object... entities)
        Description copied from interface: Mutiny.StatelessSession
        Insert multiple rows using the specified batch size.
        Specified by:
        insertAll in interface Mutiny.StatelessSession
        Parameters:
        batchSize - the batch size
        entities - new transient instances
        See Also:
        StatelessSession.insert(Object)
      • delete

        public io.smallrye.mutiny.Uni<java.lang.Void> delete​(java.lang.Object entity)
        Description copied from interface: Mutiny.StatelessSession
        Delete a row.
        Specified by:
        delete in interface Mutiny.StatelessSession
        Parameters:
        entity - a detached entity instance
        See Also:
        StatelessSession.delete(Object)
      • deleteAll

        public io.smallrye.mutiny.Uni<java.lang.Void> deleteAll​(java.lang.Object... entities)
        Description copied from interface: Mutiny.StatelessSession
        Delete multiple rows.
        Specified by:
        deleteAll in interface Mutiny.StatelessSession
        Parameters:
        entities - detached entity instances
        See Also:
        StatelessSession.delete(Object)
      • deleteAll

        public io.smallrye.mutiny.Uni<java.lang.Void> deleteAll​(int batchSize,
                                                                java.lang.Object... entities)
        Description copied from interface: Mutiny.StatelessSession
        Delete multiple rows.
        Specified by:
        deleteAll in interface Mutiny.StatelessSession
        Parameters:
        batchSize - the batch size
        entities - detached entity instances
        See Also:
        StatelessSession.delete(Object)
      • update

        public io.smallrye.mutiny.Uni<java.lang.Void> update​(java.lang.Object entity)
        Description copied from interface: Mutiny.StatelessSession
        Update a row.
        Specified by:
        update in interface Mutiny.StatelessSession
        Parameters:
        entity - a detached entity instance
        See Also:
        StatelessSession.update(Object)
      • updateAll

        public io.smallrye.mutiny.Uni<java.lang.Void> updateAll​(java.lang.Object... entities)
        Description copied from interface: Mutiny.StatelessSession
        Update multiple rows.
        Specified by:
        updateAll in interface Mutiny.StatelessSession
        Parameters:
        entities - detached entity instances
        See Also:
        StatelessSession.update(Object)
      • updateAll

        public io.smallrye.mutiny.Uni<java.lang.Void> updateAll​(int batchSize,
                                                                java.lang.Object... entities)
        Description copied from interface: Mutiny.StatelessSession
        Update multiple rows.
        Specified by:
        updateAll in interface Mutiny.StatelessSession
        Parameters:
        batchSize - the batch size
        entities - detached entity instances
        See Also:
        StatelessSession.update(Object)
      • refresh

        public io.smallrye.mutiny.Uni<java.lang.Void> refresh​(java.lang.Object entity)
        Description copied from interface: Mutiny.StatelessSession
        Refresh the entity instance state from the database.
        Specified by:
        refresh in interface Mutiny.StatelessSession
        Parameters:
        entity - The entity to be refreshed.
        See Also:
        StatelessSession.refresh(Object)
      • refreshAll

        public io.smallrye.mutiny.Uni<java.lang.Void> refreshAll​(java.lang.Object... entities)
        Description copied from interface: Mutiny.StatelessSession
        Refresh the entity instance state from the database.
        Specified by:
        refreshAll in interface Mutiny.StatelessSession
        Parameters:
        entities - The entities to be refreshed.
        See Also:
        StatelessSession.refresh(Object)
      • refreshAll

        public io.smallrye.mutiny.Uni<java.lang.Void> refreshAll​(int batchSize,
                                                                 java.lang.Object... entities)
        Description copied from interface: Mutiny.StatelessSession
        Refresh the entity instance state from the database using the selected batch size.
        Specified by:
        refreshAll in interface Mutiny.StatelessSession
        Parameters:
        batchSize - the batch size
        entities - The entities to be refreshed.
        See Also:
        StatelessSession.refresh(Object)
      • refresh

        public io.smallrye.mutiny.Uni<java.lang.Void> refresh​(java.lang.Object entity,
                                                              org.hibernate.LockMode lockMode)
        Description copied from interface: Mutiny.StatelessSession
        Refresh the entity instance state from the database.
        Specified by:
        refresh in interface Mutiny.StatelessSession
        Parameters:
        entity - The entity to be refreshed.
        lockMode - The LockMode to be applied.
        See Also:
        StatelessSession.refresh(Object, LockMode)
      • fetch

        public <T> io.smallrye.mutiny.Uni<T> fetch​(T association)
        Description copied from interface: Mutiny.StatelessSession
        Asynchronously fetch an association that's configured for lazy loading.
         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.
        Specified by:
        fetch in interface Mutiny.StatelessSession
        Parameters:
        association - a lazy-loaded association
        Returns:
        the fetched association, via a Uni
        See Also:
        Hibernate.initialize(Object)
      • createEntityGraph

        public <T> javax.persistence.EntityGraph<T> createEntityGraph​(java.lang.Class<T> entity,
                                                                      java.lang.String name)
        Description copied from interface: Mutiny.StatelessSession
        Create a new mutable copy of a named EntityGraph
        Specified by:
        createEntityGraph in interface Mutiny.StatelessSession
      • withTransaction

        public <T> io.smallrye.mutiny.Uni<T> withTransaction​(java.util.function.Function<Mutiny.Transaction,​io.smallrye.mutiny.Uni<T>> work)
        Description copied from interface: Mutiny.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 if Mutiny.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 interface Mutiny.StatelessSession
Parameters:
work - a function which accepts Mutiny.Transaction and returns the result of the work as a Uni.
See Also:
Mutiny.SessionFactory.withTransaction(BiFunction)