Interface SharedSessionContractImplementor

    • Method Detail

      • getPersistenceContext

        PersistenceContext getPersistenceContext()
        Get the persistence context for this session
      • getTenantIdentifier

        java.lang.String getTenantIdentifier()
        The multi-tenancy tenant identifier, if one.
        Specified by:
        getTenantIdentifier in interface SharedSessionContract
        Returns:
        The tenant identifier; may be null
      • getSessionIdentifier

        java.util.UUID getSessionIdentifier()
        A UUID associated with each Session. Useful mainly for logging.
        Returns:
        The UUID
      • isClosed

        boolean isClosed()
        Checks whether the session is closed. Provided separately from SharedSessionContract.isOpen() as this method does not attempt any JTA synchronization registration, whereas SharedSessionContract.isOpen() does; which makes this one nicer to use for most internal purposes.
        Returns:
        true if the session is closed; false otherwise.
      • isOpenOrWaitingForAutoClose

        default boolean isOpenOrWaitingForAutoClose()
        Checks whether the session is open or is waiting for auto-close
        Returns:
        true if the session is closed or if it's waiting for auto-close; false otherwise.
      • checkOpen

        default void checkOpen()
        Performs a check whether the Session is open, and if not:
        • marks current transaction (if one) for rollback only
        • throws an IllegalStateException (JPA defines the exception type)
      • checkOpen

        void checkOpen​(boolean markForRollbackIfClosed)
        Performs a check whether the Session is open, and if not:
        • if markForRollbackIfClosed is true, marks current transaction (if one) for rollback only
        • throws an IllegalStateException (JPA defines the exception type)
      • markForRollbackOnly

        void markForRollbackOnly()
        Marks current transaction (if one) for rollback only
      • getTransactionStartTimestamp

        long getTransactionStartTimestamp()
        A "timestamp" at or before the start of the current transaction.
      • getCacheTransactionSynchronization

        CacheTransactionSynchronization getCacheTransactionSynchronization()
        The current CacheTransactionContext associated with the Session. This may return null when the Session is not currently part of a transaction.
      • isTransactionInProgress

        boolean isTransactionInProgress()
        Does this Session have an active Hibernate transaction or is there a JTA transaction in progress?
      • checkTransactionNeededForUpdateOperation

        default void checkTransactionNeededForUpdateOperation​(java.lang.String exceptionMessage)
        Check if an active Transaction is necessary for the update operation to be executed. If an active Transaction is necessary but it is not then a TransactionRequiredException is raised.
        Parameters:
        exceptionMessage - the message to use for the TransactionRequiredException
      • accessTransaction

        Transaction accessTransaction()
        Provides access to the underlying transaction or creates a new transaction if one does not already exist or is active. This is primarily for internal or integrator use.
        Returns:
        the transaction
      • generateEntityKey

        EntityKey generateEntityKey​(java.io.Serializable id,
                                    EntityPersister persister)
        Hide the changing requirements of entity key creation
        Parameters:
        id - The entity id
        persister - The entity persister
        Returns:
        The entity key
      • getInterceptor

        Interceptor getInterceptor()
        Retrieves the interceptor currently in use by this event source.
        Returns:
        The interceptor.
      • setAutoClear

        void setAutoClear​(boolean enabled)
        Enable/disable automatic cache clearing from after transaction completion (for EJB3)
      • internalLoad

        java.lang.Object internalLoad​(java.lang.String entityName,
                                      java.io.Serializable id,
                                      boolean eager,
                                      boolean nullable)
                               throws HibernateException
        Load an instance without checking if it was deleted.

        When nullable is disabled this method may create a new proxy or return an existing proxy; if it does not exist, throw an exception.

        When nullable is enabled, the method does not create new proxies (but might return an existing proxy); if it does not exist, return null.

        When eager is enabled, the object is eagerly fetched

        Throws:
        HibernateException
      • immediateLoad

        java.lang.Object immediateLoad​(java.lang.String entityName,
                                       java.io.Serializable id)
                                throws HibernateException
        Load an instance immediately. This method is only called when lazily initializing a proxy. Do not return the proxy.
        Throws:
        HibernateException
      • list

        java.util.List list​(Criteria criteria)
        Execute a criteria query
      • getEntityPersister

        EntityPersister getEntityPersister​(java.lang.String entityName,
                                           java.lang.Object object)
                                    throws HibernateException
        Get the EntityPersister for any instance
        Parameters:
        entityName - optional entity name
        object - the entity instance
        Throws:
        HibernateException
      • getEntityUsingInterceptor

        java.lang.Object getEntityUsingInterceptor​(EntityKey key)
                                            throws HibernateException
        Get the entity instance associated with the given Key, calling the Interceptor if necessary
        Throws:
        HibernateException
      • getContextEntityIdentifier

        java.io.Serializable getContextEntityIdentifier​(java.lang.Object object)
        Return the identifier of the persistent object, or null if not associated with the session
      • bestGuessEntityName

        java.lang.String bestGuessEntityName​(java.lang.Object object)
        The best guess entity name for an entity not in an association
      • guessEntityName

        java.lang.String guessEntityName​(java.lang.Object entity)
                                  throws HibernateException
        The guessed entity name for an entity not in an association
        Throws:
        HibernateException
      • instantiate

        java.lang.Object instantiate​(java.lang.String entityName,
                                     java.io.Serializable id)
                              throws HibernateException
        Instantiate the entity class, initializing with the given identifier
        Throws:
        HibernateException
      • list

        java.util.List list​(NativeSQLQuerySpecification spec,
                            QueryParameters queryParameters)
                     throws HibernateException
        Execute a native SQL query, and return the results as a fully built list.
        Parameters:
        spec - The specification of the native SQL query to execute.
        queryParameters - The parameters by which to perform the execution.
        Returns:
        The result list.
        Throws:
        HibernateException
      • getDontFlushFromFind

        int getDontFlushFromFind()
      • setCacheMode

        void setCacheMode​(CacheMode cm)
      • setFlushMode

        @Deprecated
        void setFlushMode​(FlushMode flushMode)
        Deprecated.
        (since 5.2) use setHibernateFlushMode(FlushMode) instead
        Set the flush mode for this session.

        The flush mode determines the points at which the session is flushed. Flushing is the process of synchronizing the underlying persistent store with persistable state held in memory.

        For a logically "read only" session, it is reasonable to set the session's flush mode to FlushMode.MANUAL at the start of the session (in order to achieve some extra performance).

        Parameters:
        flushMode - the new flush mode
      • getFlushMode

        FlushModeType getFlushMode()
        Get the flush mode for this session.

        For users of the Hibernate native APIs, we've had to rename this method as defined by Hibernate historically because the JPA contract defines a method of the same name, but returning the JPA FlushModeType rather than Hibernate's FlushMode. For the former behavior, use getHibernateFlushMode() instead.

        Returns:
        The FlushModeType in effect for this Session.
      • setHibernateFlushMode

        void setHibernateFlushMode​(FlushMode flushMode)
        Set the flush mode for this session.

        The flush mode determines the points at which the session is flushed. Flushing is the process of synchronizing the underlying persistent store with persistable state held in memory.

        For a logically "read only" session, it is reasonable to set the session's flush mode to FlushMode.MANUAL at the start of the session (in order to achieve some extra performance).

        Parameters:
        flushMode - the new flush mode
      • connection

        java.sql.Connection connection()
      • flush

        void flush()
      • isEventSource

        boolean isEventSource()
      • afterScrollOperation

        void afterScrollOperation()
      • shouldAutoClose

        boolean shouldAutoClose()
      • isAutoCloseSessionEnabled

        boolean isAutoCloseSessionEnabled()
      • isQueryParametersValidationEnabled

        default boolean isQueryParametersValidationEnabled()
      • getLoadQueryInfluencers

        LoadQueryInfluencers getLoadQueryInfluencers()
        Get the load query influencers associated with this session.
        Returns:
        the load query influencers associated with this session; should never be null.
      • getConfiguredJdbcBatchSize

        default java.lang.Integer getConfiguredJdbcBatchSize()
        Get the currently configured JDBC batch size either at the Session-level or SessionFactory-level. If the Session-level JDBC batch size was not configured, return the SessionFactory-level one.
        Returns:
        Session-level or or SessionFactory-level JDBC batch size.
        Since:
        5.2
        See Also:
        SessionFactoryOptions.getJdbcBatchSize(), SessionFactoryBuilder.applyJdbcBatchSize(int)