org.hibernate

Interface SessionFactory

All Superinterfaces:
Referenceable, Serializable
Known Subinterfaces:
SessionFactoryImplementor
Known Implementing Classes:
SessionFactoryImpl

public interface SessionFactory
extends Referenceable, Serializable

Creates Sessions. Usually an application has a single SessionFactory. Threads servicing client requests obtain Sessions from the factory.

Implementors must be threadsafe.

SessionFactorys are immutable. The behaviour of a SessionFactory is controlled by properties supplied at configuration time. These properties are defined on Environment.
Author:
Gavin King
See Also:
Session, Environment, Configuration, ConnectionProvider, TransactionFactory

Method Summary

void
close()
Destroy this SessionFactory and release all resources (caches, connection pools, etc).
void
evict(Class persistentClass)
Evict all entries from the second-level cache.
void
evict(Class persistentClass, Serializable id)
Evict an entry from the second-level cache.
void
evictCollection(String roleName)
Evict all entries from the second-level cache.
void
evictCollection(String roleName, Serializable id)
Evict an entry from the second-level cache.
void
evictEntity(String entityName)
Evict all entries from the second-level cache.
void
evictEntity(String entityName, Serializable id)
Evict an entry from the second-level cache.
void
evictQueries()
Evict any query result sets cached in the default query cache region.
void
evictQueries(String cacheRegion)
Evict any query result sets cached in the named query cache region.
Map
getAllClassMetadata()
Get all ClassMetadata as a Map from entityname String to metadata object
Map
getAllCollectionMetadata()
Get all CollectionMetadata as a Map from role name to metadata object
ClassMetadata
getClassMetadata(Class persistentClass)
Get the ClassMetadata associated with the given entity class
ClassMetadata
getClassMetadata(String entityName)
Get the ClassMetadata associated with the given entity name
CollectionMetadata
getCollectionMetadata(String roleName)
Get the CollectionMetadata associated with the named collection role
Session
getCurrentSession()
Obtains the current session.
Set
getDefinedFilterNames()
Obtain a set of the names of all filters defined on this SessionFactory.
FilterDefinition
getFilterDefinition(String filterName)
Obtain the definition of a filter by name.
Statistics
getStatistics()
Get the statistics for this session factory
boolean
isClosed()
Was this SessionFactory already closed?
Session
openSession()
Create database connection and open a Session on it.
Session
openSession(Connection connection)
Open a Session on the given connection.
Session
openSession(Connection connection, Interceptor interceptor)
Open a Session on the given connection, specifying an interceptor.
Session
openSession(Interceptor interceptor)
Create database connection and open a Session on it, specifying an interceptor.
StatelessSession
openStatelessSession()
Get a new stateless session.
StatelessSession
openStatelessSession(Connection connection)
Get a new stateless session for the given JDBC connection.

Method Details

close

public void close()
            throws HibernateException
Destroy this SessionFactory and release all resources (caches, connection pools, etc). It is the responsibility of the application to ensure that there are no open Sessions before calling close().

evict

public void evict(Class persistentClass)
            throws HibernateException
Evict all entries from the second-level cache. This method occurs outside of any transaction; it performs an immediate "hard" remove, so does not respect any transaction isolation semantics of the usage strategy. Use with care.

evict

public void evict(Class persistentClass,
                  Serializable id)
            throws HibernateException
Evict an entry from the second-level cache. This method occurs outside of any transaction; it performs an immediate "hard" remove, so does not respect any transaction isolation semantics of the usage strategy. Use with care.

evictCollection

public void evictCollection(String roleName)
            throws HibernateException
Evict all entries from the second-level cache. This method occurs outside of any transaction; it performs an immediate "hard" remove, so does not respect any transaction isolation semantics of the usage strategy. Use with care.

evictCollection

public void evictCollection(String roleName,
                            Serializable id)
            throws HibernateException
Evict an entry from the second-level cache. This method occurs outside of any transaction; it performs an immediate "hard" remove, so does not respect any transaction isolation semantics of the usage strategy. Use with care.

evictEntity

public void evictEntity(String entityName)
            throws HibernateException
Evict all entries from the second-level cache. This method occurs outside of any transaction; it performs an immediate "hard" remove, so does not respect any transaction isolation semantics of the usage strategy. Use with care.

evictEntity

public void evictEntity(String entityName,
                        Serializable id)
            throws HibernateException
Evict an entry from the second-level cache. This method occurs outside of any transaction; it performs an immediate "hard" remove, so does not respect any transaction isolation semantics of the usage strategy. Use with care.

evictQueries

public void evictQueries()
            throws HibernateException
Evict any query result sets cached in the default query cache region.

evictQueries

public void evictQueries(String cacheRegion)
            throws HibernateException
Evict any query result sets cached in the named query cache region.

getAllClassMetadata

public Map getAllClassMetadata()
            throws HibernateException
Get all ClassMetadata as a Map from entityname String to metadata object
Returns:
a map from String an entity name to ClassMetaData
Since:
3.0 changed key from Class to String
See Also:
ClassMetadata

getAllCollectionMetadata

public Map getAllCollectionMetadata()
            throws HibernateException
Get all CollectionMetadata as a Map from role name to metadata object
Returns:
a map from String to CollectionMetadata

getClassMetadata

public ClassMetadata getClassMetadata(Class persistentClass)
            throws HibernateException
Get the ClassMetadata associated with the given entity class
See Also:
ClassMetadata

getClassMetadata

public ClassMetadata getClassMetadata(String entityName)
            throws HibernateException
Get the ClassMetadata associated with the given entity name
Since:
3.0
See Also:
ClassMetadata

getCollectionMetadata

public CollectionMetadata getCollectionMetadata(String roleName)
            throws HibernateException
Get the CollectionMetadata associated with the named collection role

getCurrentSession

public Session getCurrentSession()
            throws HibernateException
Obtains the current session. The definition of what exactly "current" means controlled by the CurrentSessionContext impl configured for use.

Note that for backwards compatibility, if a CurrentSessionContext is not configured but a JTA TransactionManagerLookup is configured this will default to the JTASessionContext impl.

Returns:
The current session.
Throws:
HibernateException - Indicates an issue locating a suitable current session.

getDefinedFilterNames

public Set getDefinedFilterNames()
Obtain a set of the names of all filters defined on this SessionFactory.
Returns:
The set of filter names.

getFilterDefinition

public FilterDefinition getFilterDefinition(String filterName)
            throws HibernateException
Obtain the definition of a filter by name.
Parameters:
filterName - The name of the filter for which to obtain the definition.
Returns:
The filter definition.
Throws:
HibernateException - If no filter defined with the given name.

getStatistics

public Statistics getStatistics()
Get the statistics for this session factory

isClosed

public boolean isClosed()
Was this SessionFactory already closed?

openSession

public Session openSession()
            throws HibernateException
Create database connection and open a Session on it.
Returns:
Session

openSession

public Session openSession(Connection connection)
Open a Session on the given connection.

Note that the second-level cache will be disabled if you supply a JDBC connection. Hibernate will not be able to track any statements you might have executed in the same transaction. Consider implementing your own ConnectionProvider.

Parameters:
connection - a connection provided by the application.
Returns:
Session

openSession

public Session openSession(Connection connection,
                           Interceptor interceptor)
Open a Session on the given connection, specifying an interceptor.

Note that the second-level cache will be disabled if you supply a JDBC connection. Hibernate will not be able to track any statements you might have executed in the same transaction. Consider implementing your own ConnectionProvider.

Parameters:
connection - a connection provided by the application.
interceptor - a session-scoped interceptor
Returns:
Session

openSession

public Session openSession(Interceptor interceptor)
            throws HibernateException
Create database connection and open a Session on it, specifying an interceptor.
Parameters:
interceptor - a session-scoped interceptor
Returns:
Session

openStatelessSession

public StatelessSession openStatelessSession()
Get a new stateless session.

openStatelessSession

public StatelessSession openStatelessSession(Connection connection)
Get a new stateless session for the given JDBC connection.