Package org.hibernate

Interface StatelessSession

  • All Superinterfaces:
    AutoCloseable, Closeable, QueryProducer, Serializable, SharedSessionContract
    All Known Implementing Classes:
    StatelessSessionImpl

    public interface StatelessSession
    extends SharedSessionContract
    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. Stateless sessions are vulnerable to data aliasing effects, due to the lack of a first-level cache.

    For certain kinds of transactions, a stateless session may perform slightly faster than a stateful session.

    • Method Detail

      • insert

        Object insert​(Object entity)
        Insert a row.
        Parameters:
        entity - a new transient instance
        Returns:
        The identifier of the inserted entity
      • insert

        Object insert​(String entityName,
                      Object entity)
        Insert a row.
        Parameters:
        entityName - The entityName for the entity to be inserted
        entity - a new transient instance
        Returns:
        the identifier of the instance
      • update

        void update​(Object entity)
        Update a row.
        Parameters:
        entity - a detached entity instance
      • update

        void update​(String entityName,
                    Object entity)
        Update a row.
        Parameters:
        entityName - The entityName for the entity to be updated
        entity - a detached entity instance
      • delete

        void delete​(Object entity)
        Delete a row.
        Parameters:
        entity - a detached entity instance
      • delete

        void delete​(String entityName,
                    Object entity)
        Delete a row.
        Parameters:
        entityName - The entityName for the entity to be deleted
        entity - a detached entity instance
      • get

        Object get​(String entityName,
                   Object id)
        Retrieve a row.
        Parameters:
        entityName - The name of the entity to retrieve
        id - The id of the entity to retrieve
        Returns:
        a detached entity instance
      • get

        <T> T get​(Class<T> entityClass,
                  Object id)
        Retrieve a row.
        Parameters:
        entityClass - The class of the entity to retrieve
        id - The id of the entity to retrieve
        Returns:
        a detached entity instance
      • get

        Object get​(String entityName,
                   Object id,
                   LockMode lockMode)
        Retrieve a row, obtaining the specified lock mode.
        Parameters:
        entityName - The name 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
      • get

        <T> T get​(Class<T> entityClass,
                  Object id,
                  LockMode lockMode)
        Retrieve a row, obtaining the specified lock mode.
        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
      • refresh

        void refresh​(Object entity)
        Refresh the entity instance state from the database.
        Parameters:
        entity - The entity to be refreshed.
      • refresh

        void refresh​(String entityName,
                     Object entity)
        Refresh the entity instance state from the database.
        Parameters:
        entityName - The entityName for the entity to be refreshed.
        entity - The entity to be refreshed.
      • refresh

        void refresh​(Object entity,
                     LockMode lockMode)
        Refresh the entity instance state from the database.
        Parameters:
        entity - The entity to be refreshed.
        lockMode - The LockMode to be applied.
      • refresh

        void refresh​(String entityName,
                     Object entity,
                     LockMode lockMode)
        Refresh the entity instance state from the database.
        Parameters:
        entityName - The entityName for the entity to be refreshed.
        entity - The entity to be refreshed.
        lockMode - The LockMode to be applied.
      • fetch

        void fetch​(Object association)
        Fetch an association that's configured for lazy loading.

        Warning: this operation in a stateless session is quite sensitive to data aliasing effects and should be used with great care.

        Parameters:
        association - a lazy-loaded association
        See Also:
        Hibernate.initialize(Object)