|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.hibernate.impl.AbstractSessionImpl
org.hibernate.impl.SessionImpl
Concrete implementation of a Session, and also the central, organizing component of Hibernate's internal implementation. As such, this class exposes two interfaces; Session itself, to the application, and SessionImplementor, to other components of Hibernate. This class is not threadsafe.
| Field Summary |
| Fields inherited from class org.hibernate.impl.AbstractSessionImpl |
factory |
| Method Summary | |
void |
afterOperation(boolean success)
Check if there is a Hibernate or JTA transaction in progress and, if there is not, flush if necessary, make sure the connection has been committed (if it is not in autocommit mode) and run the after completion processing |
void |
afterScrollOperation()
|
void |
afterTransactionBegin(Transaction tx)
We cannot rely upon this method being called! It is only called if we are using Hibernate Transaction API. |
void |
afterTransactionCompletion(boolean success,
Transaction tx)
Notify the session that the transaction completed, so we no longer own the old locks. |
protected boolean |
autoFlushIfRequired(Set querySpaces)
detect in-memory changes, determine if the changes are to tables named in the query and, if so, complete execution the flush |
void |
beforeTransactionCompletion(Transaction tx)
Notify the session that the transaction is about to complete |
Transaction |
beginTransaction()
Begin a unit of work and return the associated Transaction object. |
String |
bestGuessEntityName(Object object)
The best guess entity name for an entity not in an association |
void |
cancelQuery()
Cancel the execution of the current query. |
void |
clear()
Completely clear the session. |
Connection |
close()
End the session by releasing the JDBC connection and cleaning up. |
Connection |
connection()
Get the JDBC connection of this Session. If the session is using aggressive collection release (as in a CMT environment), it is the application's responsibility to close the connection returned by this call. |
boolean |
contains(Object object)
Check if this instance is associated with this Session. |
Criteria |
createCriteria(Class persistentClass)
Create a new Criteria instance, for the given entity class, or a superclass of an entity class. |
Criteria |
createCriteria(Class persistentClass,
String alias)
Create a new Criteria instance, for the given entity class, or a superclass of an entity class, with the given alias. |
Criteria |
createCriteria(String entityName)
Create a new Criteria instance, for the given entity name. |
Criteria |
createCriteria(String entityName,
String alias)
Create a new Criteria instance, for the given entity name, with the given alias. |
Query |
createFilter(Object collection,
String queryString)
Create a new instance of Query for the given collection and filter string. |
Query |
createQuery(String queryString)
Create a new instance of Query for the given HQL query string. |
SQLQuery |
createSQLQuery(String sql)
Create a new instance of SQLQuery for the given SQL query string. |
Query |
createSQLQuery(String sql,
String[] returnAliases,
Class[] returnClasses)
Create a new instance of Query for the given SQL string. |
Query |
createSQLQuery(String sql,
String returnAlias,
Class returnClass)
Create a new instance of Query for the given SQL string. |
void |
delete(Object object)
Delete a persistent object |
int |
delete(String query)
Delete all objects returned by the query. |
void |
delete(String entityName,
Object object)
Delete a persistent object (by explicit entity name) |
int |
delete(String query,
Object[] values,
Type[] types)
Delete all objects returned by the query. |
void |
delete(String entityName,
Object object,
boolean isCascadeDeleteEnabled,
Set transientEntities)
Delete a persistent object |
int |
delete(String query,
Object value,
Type type)
Delete all objects returned by the query. |
void |
disableFilter(String filterName)
Disable the named filter for the current session. |
Connection |
disconnect()
Disconnect the Session from the current JDBC connection. |
Filter |
enableFilter(String filterName)
Enable the named filter for this current session. |
void |
evict(Object object)
remove any hard references to the entity that are held by the infrastructure (references held by application or other persistant instances are okay) |
int |
executeNativeUpdate(NativeSQLQuerySpecification nativeQuerySpecification,
QueryParameters queryParameters)
Execute a native SQL update or delete query |
int |
executeUpdate(String query,
QueryParameters queryParameters)
Execute a HQL update or delete query |
Collection |
filter(Object collection,
String filter)
Apply a filter to a persistent collection. |
Collection |
filter(Object collection,
String filter,
Object[] values,
Type[] types)
Apply a filter to a persistent collection. |
Collection |
filter(Object collection,
String filter,
Object value,
Type type)
Apply a filter to a persistent collection. |
List |
find(String query)
Retrieve a list of persistent objects using a hibernate query |
List |
find(String query,
Object[] values,
Type[] types)
Execute a query with bind parameters, binding an array of values to "?" parameters in the query string. |
List |
find(String query,
Object value,
Type type)
Execute a query with bind parameters, binding a value to a "?" parameter in the query string. |
void |
flush()
Force this session to flush. |
void |
forceFlush(EntityEntry entityEntry)
Force an immediate flush |
Object |
get(Class entityClass,
Serializable id)
Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance. |
Object |
get(Class entityClass,
Serializable id,
LockMode lockMode)
Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance. |
Object |
get(String entityName,
Serializable id)
Return the persistent instance of the given named entity with the given identifier, or null if there is no such persistent instance. |
Object |
get(String entityName,
Serializable id,
LockMode lockMode)
Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance. |
ActionQueue |
getActionQueue()
Get the ActionQueue for this session |
Batcher |
getBatcher()
Get the prepared statement Batcher for this session |
CacheMode |
getCacheMode()
Get the current cache mode. |
ConnectionReleaseMode |
getConnectionReleaseMode()
|
Serializable |
getContextEntityIdentifier(Object object)
Get the id value for an object that is actually associated with the session. |
LockMode |
getCurrentLockMode(Object object)
Determine the current lock mode of the given object. |
int |
getDontFlushFromFind()
|
Filter |
getEnabledFilter(String filterName)
Retrieve a currently enabled filter by name. |
Map |
getEnabledFilters()
Return the currently enabled filters. |
EntityMode |
getEntityMode()
Retrieve the entity mode in effect for this session. |
String |
getEntityName(Object object)
Return the entity name for a persistent entity |
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 |
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()
Get the current flush mode for this session. |
Serializable |
getIdentifier(Object object)
Return the identifier value of the given entity as associated with this session. |
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 queryName)
Get a Query instance for a named query or named native SQL query |
PersistenceContext |
getPersistenceContext()
Get the persistence context for this session |
Session |
getSession(EntityMode entityMode)
Starts a new Session with the given entity mode in effect. |
SessionFactory |
getSessionFactory()
Get the session factory which created this session. |
SessionStatistics |
getStatistics()
Get the statistics for this session. |
long |
getTimestamp()
System time before the start of the transaction |
Transaction |
getTransaction()
Get the Transaction instance associated with this session. |
String |
guessEntityName(Object object)
The guessed entity name for an entity not in an association |
Object |
immediateLoad(String entityName,
Serializable id)
Load the data for the object with the specified id into a newly created object. |
void |
initializeCollection(PersistentCollection collection,
boolean writing)
Initialize the collection (if not already initialized) |
Object |
instantiate(EntityPersister persister,
Serializable id)
give the interceptor an opportunity to override the default instantiation |
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 |
isAutoCloseSessionEnabled()
|
boolean |
isConnected()
Check if the session is currently connected. |
boolean |
isDirty()
Does this session contain any changes which must be synchronized with the database? In other words, would any DML operations be executed if we flushed this session? |
boolean |
isEventSource()
|
boolean |
isFlushBeforeCompletionEnabled()
|
boolean |
isFlushModeNever()
|
boolean |
isOpen()
Check if the session is still open. |
boolean |
isTransactionInProgress()
Does this Session have an active Hibernate transaction or is there a JTA transaction in progress? |
Iterator |
iterate(String query)
Execute a query and return the results in an iterator. |
Iterator |
iterate(String query,
Object[] values,
Type[] types)
Execute a query and return the results in an iterator. |
Iterator |
iterate(String query,
Object value,
Type type)
Execute a query and return the results in an iterator. |
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(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 |
Object |
load(Class entityClass,
Serializable id)
Return the persistent instance of the given entity class with the given identifier, assuming that the instance exists. |
Object |
load(Class entityClass,
Serializable id,
LockMode lockMode)
Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists. |
void |
load(Object object,
Serializable id)
Read the persistent state associated with the given identifier into the given transient instance. |
Object |
load(String entityName,
Serializable id)
Return the persistent instance of the given entity class with the given identifier, assuming that the instance exists. |
Object |
load(String entityName,
Serializable id,
LockMode lockMode)
Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists. |
void |
lock(Object object,
LockMode lockMode)
Obtain the specified lock level upon the given object. |
void |
lock(String entityName,
Object object,
LockMode lockMode)
Obtain the specified lock level upon the given object. |
void |
managedClose()
|
void |
managedFlush()
|
Object |
merge(Object object)
Copy the state of the given object onto the persistent object with the same identifier. |
Object |
merge(String entityName,
Object object)
Copy the state of the given object onto the persistent object with the same identifier. |
void |
merge(String entityName,
Object object,
Map copiedAlready)
Cascade merge an entity instance |
void |
persist(Object object)
Make a transient instance persistent. |
void |
persist(String entityName,
Object object)
Make a transient instance persistent. |
void |
persist(String entityName,
Object object,
Map copiedAlready)
Cascade persist an entity instance |
void |
persistOnFlush(Object object)
|
void |
persistOnFlush(String entityName,
Object object)
|
void |
persistOnFlush(String entityName,
Object object,
Map copiedAlready)
Cascade persist an entity instance during the flush process |
void |
reconnect()
Obtain a new JDBC connection. |
void |
reconnect(Connection conn)
Reconnect to the given JDBC connection. |
void |
refresh(Object object)
Re-read the state of the given instance from the underlying database. |
void |
refresh(Object object,
LockMode lockMode)
Re-read the state of the given instance from the underlying database, with the given LockMode. |
void |
refresh(Object object,
Map refreshedAlready)
Cascade refesh an entity instance |
void |
replicate(Object obj,
ReplicationMode replicationMode)
Persist the state of the given detached instance, reusing the current identifier value. |
void |
replicate(String entityName,
Object obj,
ReplicationMode replicationMode)
Persist the state of the given detached instance, reusing the current identifier value. |
Serializable |
save(Object obj)
Persist the given transient instance, first assigning a generated identifier. |
void |
save(Object obj,
Serializable id)
Persist the given transient instance, using the given identifier. |
Serializable |
save(String entityName,
Object object)
Persist the given transient instance, first assigning a generated identifier. |
void |
save(String entityName,
Object object,
Serializable id)
Persist the given transient instance, using the given identifier. |
void |
saveOrUpdate(Object object)
Either save(Object) or update(Object) the given
instance, depending upon resolution of the unsaved-value checks (see the
manual for discussion of unsaved-value checking). |
void |
saveOrUpdate(String entityName,
Object obj)
Either save(String, Object) or update(String, Object)
the given instance, depending upon resolution of the unsaved-value checks
(see the manual for discussion of unsaved-value checking). |
Object |
saveOrUpdateCopy(Object object)
Copy the state of the given object onto the persistent object with the same identifier. |
Object |
saveOrUpdateCopy(Object object,
Serializable id)
Copy the state of the given object onto the persistent object with the given identifier. |
Object |
saveOrUpdateCopy(String entityName,
Object object)
Copy the state of the given object onto the persistent object with the same identifier. |
void |
saveOrUpdateCopy(String entityName,
Object object,
Map copiedAlready)
Cascade copy an entity instance |
Object |
saveOrUpdateCopy(String entityName,
Object object,
Serializable id)
Copy the state of the given object onto the persistent object with the given identifier. |
ScrollableResults |
scroll(CriteriaImpl criteria,
ScrollMode scrollMode)
Execute a criteria query |
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 cacheMode)
Set the cache mode. |
void |
setFetchProfile(String fetchProfile)
|
void |
setFlushMode(FlushMode flushMode)
Set the flush mode for this session. |
void |
setReadOnly(Object entity,
boolean readOnly)
Set an unmodified persistent object to read only mode, or a read only object to modifiable mode. |
boolean |
shouldAutoClose()
|
String |
toString()
|
void |
update(Object obj)
Update the persistent instance with the identifier of the given detached instance. |
void |
update(Object obj,
Serializable id)
Update the persistent state associated with the given identifier. |
void |
update(String entityName,
Object object)
Update the persistent instance with the identifier of the given detached instance. |
void |
update(String entityName,
Object object,
Serializable id)
Update the persistent state associated with the given identifier. |
| Methods inherited from class org.hibernate.impl.AbstractSessionImpl |
errorIfClosed, getFactory, getHQLQueryPlan, getNamedSQLQuery, getNativeSQLQueryPlan, isClosed, list, scroll, setClosed |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.hibernate.engine.SessionImplementor |
getFactory, getNamedSQLQuery, isClosed, list, scroll |
| Methods inherited from interface org.hibernate.transaction.TransactionFactory.Context |
getFactory, isClosed |
| Method Detail |
public Session getSession(EntityMode entityMode)
Session
getSession in interface SessionentityMode - The entity mode to use for the new session.
public void clear()
Session
clear in interface Sessionpublic Batcher getBatcher()
SessionImplementor
getBatcher in interface SessionImplementorpublic long getTimestamp()
SessionImplementor
getTimestamp in interface SessionImplementor
public Connection close()
throws HibernateException
SessionSession.disconnect() it.
close in interface SessionHibernateException - Indicates problems cleaning up.public ConnectionReleaseMode getConnectionReleaseMode()
getConnectionReleaseMode in interface JDBCContext.Contextpublic boolean isAutoCloseSessionEnabled()
isAutoCloseSessionEnabled in interface JDBCContext.Contextpublic boolean isOpen()
Session
isOpen in interface SessionImplementorpublic boolean isFlushModeNever()
isFlushModeNever in interface TransactionFactory.Contextpublic boolean isFlushBeforeCompletionEnabled()
isFlushBeforeCompletionEnabled in interface TransactionFactory.Contextpublic void managedFlush()
managedFlush in interface TransactionFactory.Contextpublic boolean shouldAutoClose()
shouldAutoClose in interface TransactionFactory.Contextpublic void managedClose()
managedClose in interface TransactionFactory.Context
public Connection connection()
throws HibernateException
Session
connection in interface SessionImplementorHibernateExceptionpublic boolean isConnected()
Session
isConnected in interface SessionImplementorpublic boolean isTransactionInProgress()
SessionImplementor
isTransactionInProgress in interface SessionImplementor
public Connection disconnect()
throws HibernateException
SessionConnectionProvider has no effect,
provided ConnectionReleaseMode.ON_CLOSE is not in effect.
disconnect in interface SessionHibernateExceptionSession.reconnect(Connection),
Session.reconnect()
public void reconnect()
throws HibernateException
Session
reconnect in interface SessionHibernateExceptionSession.disconnect()
public void reconnect(Connection conn)
throws HibernateException
Session
reconnect in interface Sessionconn - a JDBC connection
HibernateExceptionSession.disconnect()public void beforeTransactionCompletion(Transaction tx)
SessionImplementor
beforeTransactionCompletion in interface SessionImplementorpublic void setAutoClear(boolean enabled)
SessionImplementor
setAutoClear in interface SessionImplementorpublic void afterOperation(boolean success)
public void afterTransactionCompletion(boolean success,
Transaction tx)
SessionImplementor
afterTransactionCompletion in interface SessionImplementor
public LockMode getCurrentLockMode(Object object)
throws HibernateException
Session
getCurrentLockMode in interface Sessionobject - a persistent instance
HibernateException
public Object getEntityUsingInterceptor(EntityKey key)
throws HibernateException
SessionImplementor
getEntityUsingInterceptor in interface SessionImplementorHibernateException
public void saveOrUpdate(Object object)
throws HibernateException
SessionSession.save(Object) or Session.update(Object) the given
instance, depending upon resolution of the unsaved-value checks (see the
manual for discussion of unsaved-value checking).
This operation cascades to associated instances if the association is mapped
with cascade="save-update".
saveOrUpdate in interface Sessionobject - a transient or detached instance containing new or updated state
HibernateExceptionSession.save(Object),
Session.update(Object)
public void saveOrUpdate(String entityName,
Object obj)
throws HibernateException
SessionSession.save(String, Object) or Session.update(String, Object)
the given instance, depending upon resolution of the unsaved-value checks
(see the manual for discussion of unsaved-value checking).
This operation cascades to associated instances if the association is mapped
with cascade="save-update".
saveOrUpdate in interface SessionentityName - The name of the entityobj - a transient or detached instance containing new or updated state
HibernateExceptionSession.save(String,Object),
Session.update(String,Object)public void <