org.hibernate
Interface StatelessSession

All Superinterfaces:
Serializable
All Known Implementing Classes:
StatelessSessionImpl

public interface StatelessSession
extends Serializable

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.

Author:
Gavin King

Method Summary
 Transaction beginTransaction()
          Begin a Hibernate transaction.
 void close()
          Close the stateless session and release the JDBC connection.
 Connection connection()
          Returns the current JDBC connection associated with this instance.

If the session is using aggressive connection release (as in a CMT environment), it is the application's responsibility to close the connection returned by this call.
 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 createQuery(String queryString)
          Create a new instance of Query for the given HQL query string.
 SQLQuery createSQLQuery(String queryString)
          Create a new instance of SQLQuery for the given SQL query string.
 void delete(Object entity)
          Delete a row.
 void delete(String entityName, Object entity)
          Delete a row.
 Object get(Class entityClass, Serializable id)
          Retrieve a row.
 Object get(Class entityClass, Serializable id, LockMode lockMode)
          Retrieve a row, obtaining the specified lock mode.
 Object get(String entityName, Serializable id)
          Retrieve a row.
 Object get(String entityName, Serializable id, LockMode lockMode)
          Retrieve a row, obtaining the specified lock mode.
 Query getNamedQuery(String queryName)
          Obtain an instance of Query for a named query string defined in the mapping file.
 Transaction getTransaction()
          Get the current Hibernate transaction.
 Serializable insert(Object entity)
          Insert a row.
 Serializable insert(String entityName, Object entity)
          Insert a row.
 void refresh(Object entity)
          Refresh the entity instance state from the database.
 void refresh(Object entity, LockMode lockMode)
          Refresh the entity instance state from the database.
 void refresh(String entityName, Object entity)
          Refresh the entity instance state from the database.
 void refresh(String entityName, Object entity, LockMode lockMode)
          Refresh the entity instance state from the database.
 void update(Object entity)
          Update a row.
 void update(String entityName, Object entity)
          Update a row.
 

Method Detail

close

void close()
Close the stateless session and release the JDBC connection.


insert

Serializable insert(Object entity)
Insert a row.

Parameters:
entity - a new transient instance

insert

Serializable 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,
           Serializable id)
Retrieve a row.

Returns:
a detached entity instance

get

Object get(Class entityClass,
           Serializable id)
Retrieve a row.

Returns:
a detached entity instance

get

Object get(String entityName,
           Serializable id,
           LockMode lockMode)
Retrieve a row, obtaining the specified lock mode.

Returns:
a detached entity instance

get

Object get(Class entityClass,
           Serializable id,
           LockMode lockMode)
Retrieve a row, obtaining the specified lock mode.

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.

createQuery

Query createQuery(String queryString)
Create a new instance of Query for the given HQL query string. Entities returned by the query are detached.


getNamedQuery

Query getNamedQuery(String queryName)
Obtain an instance of Query for a named query string defined in the mapping file. Entities returned by the query are detached.


createCriteria

Criteria createCriteria(Class persistentClass)
Create a new Criteria instance, for the given entity class, or a superclass of an entity class. Entities returned by the query are detached.

Parameters:
persistentClass - a class, which is persistent, or has persistent subclasses
Returns:
Criteria

createCriteria

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. Entities returned by the query are detached.

Parameters:
persistentClass - a class, which is persistent, or has persistent subclasses
Returns:
Criteria

createCriteria

Criteria createCriteria(String entityName)
Create a new Criteria instance, for the given entity name. Entities returned by the query are detached.

Parameters:
entityName -
Returns:
Criteria

createCriteria

Criteria createCriteria(String entityName,
                        String alias)
Create a new Criteria instance, for the given entity name, with the given alias. Entities returned by the query are detached.

Parameters:
entityName -
Returns:
Criteria

createSQLQuery

SQLQuery createSQLQuery(String queryString)
                        throws HibernateException
Create a new instance of SQLQuery for the given SQL query string. Entities returned by the query are detached.

Parameters:
queryString - a SQL query
Returns:
SQLQuery
Throws:
HibernateException

beginTransaction

Transaction beginTransaction()
Begin a Hibernate transaction.


getTransaction

Transaction getTransaction()
Get the current Hibernate transaction.


connection

Connection connection()
Returns the current JDBC connection associated with this instance.

If the session is using aggressive connection release (as in a CMT environment), it is the application's responsibility to close the connection returned by this call. Otherwise, the application should not close the connection.