站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > Hibernate 2.1.8 正式版 API 英文文档

Criteria (Hibernate API Documentation) - Hibernate 2.1.8 正式版 API 英文文档


net.sf.hibernate
Interface Criteria

All Known Implementing Classes:
CriteriaImpl, CriteriaImpl.Subcriteria

public interface Criteria

Criteria is a simplified API for retrieving entities by composing Criterion objects. This is a very convenient approach for functionality like "search" screens where there is a variable number of conditions to be placed upon the result set.

The Session is a factory for Criteria. Criterion instances are usually obtained via the factory methods on Expression. eg.

 List cats = session.createCriteria(Cat.class)
     .add( Expression.like("name", "Iz%") )
     .add( Expression.gt( "weight", new Float(minWeight) ) )
     .addOrder( Order.asc("age") )
     .list();
 
You may navigate associations using createAlias() or createCriteria().
 List cats = session.createCriteria(Cat.class)
     .createCriteria("kittens")
         .add( Expression.like("name", "Iz%") )
     .list();
 
Hibernate's query language is much more general and should be used for non-simple cases.

This is an experimental API

Author:
Gavin King
See Also:
Session.createCriteria(java.lang.Class), Expression, Criterion, Order

Field Summary
static ResultTransformer ALIAS_TO_ENTITY_MAP
          Each row of results is a Map from alias to entity instance
static ResultTransformer DISTINCT_ROOT_ENTITY
          Each row of results is a distinct instance of the root entity
static String ROOT_ALIAS
          The alias that refers to the "root" entity of the criteria query.
static ResultTransformer ROOT_ENTITY
          Each row of results is an instance of the root entity
 
Method Summary
 Criteria add(Criterion criterion)
          Add a Criterion to constrain the results to be retrieved.
 Criteria addOrder(Order order)
          Add an Order to the result set.
 Criteria createAlias(String associationPath, String alias)
          Join an association, assigning an alias to the joined entity
 Criteria createCriteria(String associationPath)
          Create a new Criteria, "rooted" at the associated entity
 Criteria createCriteria(String associationPath, String alias)
          Create a new Criteria, "rooted" at the associated entity, assigning the given alias
 Class getCriteriaClass()
          Get the persistent class that this Criteria applies to
 Class getCriteriaClass(String alias)
          Get the persistent class that the alias refers to
 List list()
          Get the results.
 Criteria returnMaps()
          Deprecated. use setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)
 Criteria returnRootEntities()
          Deprecated. use setResultTransformer(Criteria.ROOT_ENTITY)
 Criteria setCacheable(boolean cacheable)
          Enable caching of this query result set
 Criteria setCacheRegion(String cacheRegion)
          Set the name of the cache region.
 Criteria setFetchMode(String associationPath, FetchMode mode)
          Specify an association fetching strategy for a one-to-many, many-to-one or one-to-one association, or for a collection of values.
 Criteria setFetchSize(int fetchSize)
          Set a fetch size for the underlying JDBC query.
 Criteria setFirstResult(int firstResult)
          Set the first result to be retrieved.
 Criteria setLockMode(LockMode lockMode)
          Set the lock mode of the current entity
 Criteria setLockMode(String alias, LockMode lockMode)
          Set the lock mode of the aliased entity
 Criteria setMaxResults(int maxResults)
          Set a limit upon the number of objects to be retrieved.
 Criteria setResultTransformer(ResultTransformer resultTransformer)
          Set a strategy for handling the query results.
 Criteria setTimeout(int timeout)
          Set a timeout for the underlying JDBC query.
 Object uniqueResult()
          Convenience method to return a single instance that matches the query, or null if the query returns no results.
 

Field Detail

ALIAS_TO_ENTITY_MAP

public static final ResultTransformer ALIAS_TO_ENTITY_MAP
Each row of results is a Map from alias to entity instance


ROOT_ENTITY

public static final ResultTransformer ROOT_ENTITY
Each row of results is an instance of the root entity


DISTINCT_ROOT_ENTITY

public static final ResultTransformer DISTINCT_ROOT_ENTITY
Each row of results is a distinct instance of the root entity


ROOT_ALIAS

public static final String ROOT_ALIAS
The alias that refers to the "root" entity of the criteria query.

See Also:
Constant Field Values
Method Detail

setMaxResults

public Criteria setMaxResults(int maxResults)
Set a limit upon the number of objects to be retrieved.

Parameters:
maxResults - the maximum number of results
Returns:
Criteria

setFirstResult

public Criteria setFirstResult(int firstResult)
Set the first result to be retrieved.

Parameters:
firstResult - the first result, numbered from 0
Returns:
Criteria

setFetchSize

public Criteria setFetchSize(int fetchSize)
Set a fetch size for the underlying JDBC query.

Parameters:
fetchSize - the fetch size

setTimeout

public Criteria setTimeout(int timeout)
Set a timeout for the underlying JDBC query.

Parameters:
timeout -
Returns:
Criteria

add

public Criteria add(Criterion criterion)
Add a Criterion to constrain the results to be retrieved.

Parameters:
criterion -
Returns:
Criteria

addOrder

public Criteria addOrder(Order order)
Add an Order to the result set.

Parameters:
order -
Returns:
Criteria

list

public List list()
          throws HibernateException
Get the results.

Returns:
List
Throws:
HibernateException

uniqueResult

public Object uniqueResult()
                    throws HibernateException
Convenience method to return a single instance that matches the query, or null if the query returns no results.

Returns:
the single result or null
Throws:
HibernateException - if there is more than one matching result

setFetchMode

public Criteria setFetchMode(String associationPath,
                             FetchMode mode)
                      throws HibernateException
Specify an association fetching strategy for a one-to-many, many-to-one or one-to-one association, or for a collection of values.

Parameters:
associationPath - a dot seperated property path
mode - the fetch mode
Returns:
the Criteria object for method chaining
Throws:
HibernateException

createAlias

public Criteria createAlias(String associationPath,
                            String alias)
                     throws HibernateException
Join an association, assigning an alias to the joined entity

Throws:
HibernateException

createCriteria

public Criteria createCriteria(String associationPath)
                        throws HibernateException
Create a new Criteria, "rooted" at the associated entity

Throws:
HibernateException

createCriteria

public Criteria createCriteria(String associationPath,
                               String alias)
                        throws HibernateException
Create a new Criteria, "rooted" at the associated entity, assigning the given alias

Throws:
HibernateException

getCriteriaClass

public Class getCriteriaClass()
Get the persistent class that this Criteria applies to


getCriteriaClass

public Class getCriteriaClass(String alias)
Get the persistent class that the alias refers to


returnMaps

public Criteria returnMaps()
Deprecated. use setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)

Return each row of results as a Map from alias to an instance of the aliased entity

See Also:
returnRootEntities()

returnRootEntities

public Criteria returnRootEntities()
Deprecated. use setResultTransformer(Criteria.ROOT_ENTITY)

Return each row of results as a single instance of the "root" entity (this is the default mode)

See Also:
returnMaps()

setResultTransformer

public Criteria setResultTransformer(ResultTransformer resultTransformer)
Set a strategy for handling the query results. This determines the "shape" of the query result set.

See Also:
Criteria.ROOT_ENTITY, Criteria.DISTINCT_ROOT_ENTITY, Criteria.ALIAS_TO_ENTITY_MAP

setLockMode

public Criteria setLockMode(LockMode lockMode)
Set the lock mode of the current entity

Parameters:
lockMode - the lock mode

setLockMode

public Criteria setLockMode(String alias,
                            LockMode lockMode)
Set the lock mode of the aliased entity

Parameters:
alias - an alias
lockMode - the lock mode

setCacheable

public Criteria setCacheable(boolean cacheable)
Enable caching of this query result set


setCacheRegion

public Criteria setCacheRegion(String cacheRegion)
Set the name of the cache region.

Parameters:
cacheRegion - the name of a query cache region, or null for the default query cache