org.hibernate.engine
Interface SessionImplementor

All Superinterfaces:
Serializable
All Known Subinterfaces:
EventSource
All Known Implementing Classes:
AbstractSessionImpl, SessionImpl

public interface SessionImplementor
extends Serializable

Defines the internal contract between the Session and other parts of Hibernate such as implementors of Type or EntityPersister.

Author:
Gavin King
See Also:
the interface to the application, the actual implementation

Method Summary
 void afterScrollOperation()
           
 void afterTransactionCompletion(boolean successful, Transaction tx)
          Notify the session that the transaction completed, so we no longer own the old locks.
 void beforeTransactionCompletion(Transaction tx)
          Notify the session that the transaction is about to complete
 String bestGuessEntityName(Object object)
          The best guess entity name for an entity not in an association
 Connection connection()
           
 int executeNativeUpdate(NativeSQLQuerySpecification specification, QueryParameters queryParameters)
          Execute a native SQL update or delete query
 int executeUpdate(String query, QueryParameters queryParameters)
          Execute a HQL update or delete query
 void flush()
           
 Batcher getBatcher()
          Get the prepared statement Batcher for this session
 CacheMode getCacheMode()
           
 Serializable getContextEntityIdentifier(Object object)
          Return the identifier of the persistent object, or null if not associated with the session
 int getDontFlushFromFind()
           
 Map getEnabledFilters()
          Return the currently enabled filters.
 EntityMode getEntityMode()
           
 EntityPersister getEntityPersister(String entityName, Object object)
          Get the EntityPersister for any instance
 Object getEntityUsingInterceptor(EntityKey key)
          Get the entity instance associated with the given Key, calling the Interceptor if necessary
 SessionFactoryImplementor getFactory()
          Get the creating SessionFactoryImplementor
 String getFetchProfile()
           
 Type getFilterParameterType(String filterParameterName)
          Retreive the type for a given filter parrameter.
 Object getFilterParameterValue(String filterParameterName)
          Retreive the currently set value for a filter parameter.
 FlushMode getFlushMode()
           
 Interceptor getInterceptor()
          Retrieves the interceptor currently in use by this event source.
 JDBCContext getJDBCContext()
           
 EventListeners getListeners()
          Retrieves the configured event listeners from this event source.
 Query getNamedQuery(String name)
          Get a Query instance for a named query or named native SQL query
 Query getNamedSQLQuery(String name)
          Get a Query instance for a named native SQL query
 PersistenceContext getPersistenceContext()
          Get the persistence context for this session
 long getTimestamp()
          System time before the start of the transaction
 String guessEntityName(Object entity)
          The guessed entity name for an entity not in an association
 Object immediateLoad(String entityName, Serializable id)
          Load an instance immediately.
 void initializeCollection(PersistentCollection collection, boolean writing)
          Initialize the collection (if not already initialized)
 Object instantiate(String entityName, Serializable id)
          Instantiate the entity class, initializing with the given identifier
 Object internalLoad(String entityName, Serializable id, boolean eager, boolean nullable)
          Load an instance without checking if it was deleted.
 boolean isClosed()
          Determine whether the session is closed.
 boolean isConnected()
           
 boolean isEventSource()
           
 boolean isOpen()
           
 boolean isTransactionInProgress()
          Does this Session have an active Hibernate transaction or is there a JTA transaction in progress?
 Iterator iterate(String query, QueryParameters queryParameters)
          Execute an iterate() query
 Iterator iterateFilter(Object collection, String filter, QueryParameters queryParameters)
          Iterate a filter
 List list(CriteriaImpl criteria)
          Execute a criteria query
 List list(NativeSQLQuerySpecification spec, QueryParameters queryParameters)
          Execute a native SQL query, and return the results as a fully built list.
 List list(String query, QueryParameters queryParameters)
          Execute a find() query
 List listCustomQuery(CustomQuery customQuery, QueryParameters queryParameters)
          Execute an SQL Query
 List listFilter(Object collection, String filter, QueryParameters queryParameters)
          Execute a filter
 ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode)
          Execute a criteria query
 ScrollableResults scroll(NativeSQLQuerySpecification spec, QueryParameters queryParameters)
          Execute a native SQL query, and return the results as a scrollable result.
 ScrollableResults scroll(String query, QueryParameters queryParameters)
          Execute a scroll() query
 ScrollableResults scrollCustomQuery(CustomQuery customQuery, QueryParameters queryParameters)
          Execute an SQL Query
 void setAutoClear(boolean enabled)
          Enable/disable automatic cache clearing from after transaction completion (for EJB3)
 void setCacheMode(CacheMode cm)
           
 void setFetchProfile(String name)
           
 void setFlushMode(FlushMode fm)
           
 

Method Detail

getInterceptor

public Interceptor getInterceptor()
Retrieves the interceptor currently in use by this event source.

Returns:
The interceptor.

setAutoClear

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


isTransactionInProgress

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


initializeCollection

public void initializeCollection(PersistentCollection collection,
                                 boolean writing)
                          throws HibernateException
Initialize the collection (if not already initialized)

Throws:
HibernateException

internalLoad

public Object internalLoad(String entityName,
                           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

public Object immediateLoad(String entityName,
                            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

getTimestamp

public long getTimestamp()
System time before the start of the transaction


getFactory

public SessionFactoryImplementor getFactory()
Get the creating SessionFactoryImplementor


getBatcher

public Batcher getBatcher()
Get the prepared statement Batcher for this session


list

public List list(String query,
                 QueryParameters queryParameters)
          throws HibernateException
Execute a find() query

Throws:
HibernateException

iterate

public Iterator iterate(String query,
                        QueryParameters queryParameters)
                 throws HibernateException
Execute an iterate() query

Throws:
HibernateException

scroll

public ScrollableResults scroll(String query,
                                QueryParameters queryParameters)
                         throws HibernateException
Execute a scroll() query

Throws:
HibernateException

scroll

public ScrollableResults scroll(CriteriaImpl criteria,
                                ScrollMode scrollMode)
Execute a criteria query


list

public List list(CriteriaImpl criteria)
Execute a criteria query


listFilter

public List listFilter(Object collection,
                       String filter,
                       QueryParameters queryParameters)
                throws HibernateException
Execute a filter

Throws:
HibernateException

iterateFilter

public Iterator iterateFilter(Object collection,
                              String filter,
                              QueryParameters queryParameters)
                       throws HibernateException
Iterate a filter

Throws:
HibernateException

getEntityPersister

public EntityPersister getEntityPersister(String entityName,
                                          Object object)
                                   throws HibernateException
Get the EntityPersister for any instance

Parameters:
entityName - optional entity name
object - the entity instance
Throws:
HibernateException

getEntityUsingInterceptor

public Object getEntityUsingInterceptor(EntityKey key)
                                 throws HibernateException
Get the entity instance associated with the given Key, calling the Interceptor if necessary

Throws:
HibernateException

afterTransactionCompletion

public void afterTransactionCompletion(boolean successful,
                                       Transaction tx)
Notify the session that the transaction completed, so we no longer own the old locks. (Also we should release cache softlocks.) May be called multiple times during the transaction completion process. Also called after an autocommit, in which case the second argument is null.


beforeTransactionCompletion

public void beforeTransactionCompletion(Transaction tx)
Notify the session that the transaction is about to complete


getContextEntityIdentifier

public Serializable getContextEntityIdentifier(Object object)
Return the identifier of the persistent object, or null if not associated with the session


bestGuessEntityName

public String bestGuessEntityName(Object object)
The best guess entity name for an entity not in an association


guessEntityName

public String guessEntityName(Object entity)
                       throws HibernateException
The guessed entity name for an entity not in an association

Throws:
HibernateException

instantiate

public Object instantiate(String entityName,
                          Serializable id)
                   throws HibernateException
Instantiate the entity class, initializing with the given identifier

Throws:
HibernateException

listCustomQuery

public List listCustomQuery(CustomQuery customQuery,
                            QueryParameters queryParameters)
                     throws HibernateException
Execute an SQL Query

Throws:
HibernateException

scrollCustomQuery

public ScrollableResults scrollCustomQuery(CustomQuery customQuery,
                                           QueryParameters queryParameters)
                                    throws HibernateException
Execute an SQL Query

Throws:
HibernateException

list

public 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

scroll

public ScrollableResults scroll(NativeSQLQuerySpecification spec,
                                QueryParameters queryParameters)
                         throws HibernateException
Execute a native SQL query, and return the results as a scrollable result.

Parameters:
spec - The specification of the native SQL query to execute.
queryParameters - The parameters by which to perform the execution.
Returns:
The resulting scrollable result.
Throws:
HibernateException

getFilterParameterValue

public Object getFilterParameterValue(String filterParameterName)
Retreive the currently set value for a filter parameter.

Parameters:
filterParameterName - The filter parameter name in the format {FILTER_NAME.PARAMETER_NAME}.
Returns:
The filter parameter value.

getFilterParameterType

public Type getFilterParameterType(String filterParameterName)
Retreive the type for a given filter parrameter.

Parameters:
filterParameterName - The filter parameter name in the format {FILTER_NAME.PARAMETER_NAME}.

getEnabledFilters

public Map getEnabledFilters()
Return the currently enabled filters. The filter map is keyed by filter name, with values corresponding to the FilterImpl instance.

Returns:
The currently enabled filters.

getDontFlushFromFind

public int getDontFlushFromFind()

getListeners

public EventListeners getListeners()
Retrieves the configured event listeners from this event source.

Returns:
The configured event listeners.

getPersistenceContext

public PersistenceContext getPersistenceContext()
Get the persistence context for this session


executeUpdate

public int executeUpdate(String query,
                         QueryParameters queryParameters)
                  throws HibernateException
Execute a HQL update or delete query

Throws:
HibernateException

executeNativeUpdate

public int executeNativeUpdate(NativeSQLQuerySpecification specification,
                               QueryParameters queryParameters)
                        throws HibernateException
Execute a native SQL update or delete query

Throws:
HibernateException

getEntityMode

public EntityMode getEntityMode()

getCacheMode

public CacheMode getCacheMode()

setCacheMode

public void setCacheMode(CacheMode cm)

isOpen

public boolean isOpen()

isConnected

public boolean isConnected()

getFlushMode

public FlushMode getFlushMode()

setFlushMode

public void setFlushMode(FlushMode fm)

connection

public Connection connection()

flush

public void flush()

getNamedQuery

public Query getNamedQuery(String name)
Get a Query instance for a named query or named native SQL query


getNamedSQLQuery

public Query getNamedSQLQuery(String name)
Get a Query instance for a named native SQL query


isEventSource

public boolean isEventSource()

afterScrollOperation

public void afterScrollOperation()

setFetchProfile

public void setFetchProfile(String name)

getFetchProfile

public String getFetchProfile()

getJDBCContext

public JDBCContext getJDBCContext()

isClosed

public boolean isClosed()
Determine whether the session is closed. Provided seperately from isOpen() as this method does not attempt any JTA synch registration, where as isOpen() does; which makes this one nicer to use for most internal purposes.

Returns:
True if the session is closed; false otherwise.