Package org.hibernate
Interface Criteria
- All Superinterfaces:
CriteriaSpecification
- All Known Implementing Classes:
CriteriaImpl,CriteriaImpl.Subcriteria
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 Restrictions. eg.
The Session is a factory for Criteria. Criterion instances are usually obtained via the factory methods on Restrictions. eg.
List cats = session.createCriteria(Cat.class)
.add( Restrictions.like("name", "Iz%") )
.add( Restrictions.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( Restrictions.like("name", "Iz%") )
.list();
List cats = session.createCriteria(Cat.class)
.createAlias("kittens", "kit")
.add( Restrictions.like("kit.name", "Iz%") )
.list();
You may specify projection and aggregation using Projection
instances obtained via the factory methods on Projections.
List cats = session.createCriteria(Cat.class)
.setProjection( Projections.projectionList()
.add( Projections.rowCount() )
.add( Projections.avg("weight") )
.add( Projections.max("weight") )
.add( Projections.min("weight") )
.add( Projections.groupProperty("color") )
)
.addOrder( Order.asc("color") )
.list();
- See Also:
-
Field Summary
Fields inherited from interface org.hibernate.criterion.CriteriaSpecification
ALIAS_TO_ENTITY_MAP, DISTINCT_ROOT_ENTITY, FULL_JOIN, INNER_JOIN, LEFT_JOIN, PROJECTION, ROOT_ALIAS, ROOT_ENTITY -
Method Summary
Modifier and TypeMethodDescriptionAdd arestrictionto constrain the results to be retrieved.Add anorderingto the result set.createAlias(String associationPath, String alias) Join an association, assigning an alias to the joined association.createAlias(String associationPath, String alias, int joinType) Join an association using the specified join-type, assigning an alias to the joined association.createAlias(String associationPath, String alias, int joinType, Criterion withClause) Join an association using the specified join-type, assigning an alias to the joined association.createCriteria(String associationPath) Create a new Criteria, "rooted" at the associated entity.createCriteria(String associationPath, int joinType) Create a new Criteria, "rooted" at the associated entity, using the specified join type.createCriteria(String associationPath, String alias) Create a new Criteria, "rooted" at the associated entity, assigning the given alias.createCriteria(String associationPath, String alias, int joinType) Create a new Criteria, "rooted" at the associated entity, assigning the given alias and using the specified join type.createCriteria(String associationPath, String alias, int joinType, Criterion withClause) Create a new Criteria, "rooted" at the associated entity, assigning the given alias and using the specified join type.getAlias()Get the alias of the entity encapsulated by this criteria instance.booleanShould entities and proxies loaded by this Criteria be put in read-only mode? If the read-only/modifiable setting was not initialized, then the default read-only/modifiable setting for the persistence context is returned instead.booleanWas the read-only/modifiable mode explicitly initialized?list()Get the results.scroll()Get the results as an instance ofScrollableResultsscroll(ScrollMode scrollMode) Get the results as an instance ofScrollableResultsbased on the given scroll mode.setCacheable(boolean cacheable) Enable caching of this query result, provided query caching is enabled for the underlying session factory.setCacheMode(CacheMode cacheMode) Override the cache mode for this particular query.setCacheRegion(String cacheRegion) Set the name of the cache region to use for query result caching.setComment(String comment) Add a comment to the generated SQL.setFetchMode(String associationPath, FetchMode mode) Specify an association fetching strategy for an association or a collection of values.setFetchSize(int fetchSize) Set a fetch size for the underlying JDBC query.setFirstResult(int firstResult) Set the first result to be retrieved.setFlushMode(FlushMode flushMode) Override the flush mode for this particular query.setLockMode(String alias, LockMode lockMode) Set the lock mode of the aliased entitysetLockMode(LockMode lockMode) Set the lock mode of the current entitysetMaxResults(int maxResults) Set a limit upon the number of objects to be retrieved.setProjection(Projection projection) Used to specify that the query results will be a projection (scalar in nature).setReadOnly(boolean readOnly) Set the read-only/modifiable mode for entities and proxies loaded by this Criteria.setResultTransformer(ResultTransformer resultTransformer) Set a strategy for handling the query results.setTimeout(int timeout) Set a timeout for the underlying JDBC query.Convenience method to return a single instance that matches the query, or null if the query returns no results.
-
Method Details
-
getAlias
String getAlias()Get the alias of the entity encapsulated by this criteria instance.- Returns:
- The alias for the encapsulated entity.
-
setProjection
Used to specify that the query results will be a projection (scalar in nature). Implicitly specifies theCriteriaSpecification.PROJECTIONresult transformer. The individual components contained within the givenprojectiondetermines the overall "shape" of the query result.- Parameters:
projection- The projection representing the overall "shape" of the query results.- Returns:
- this (for method chaining)
-
add
Add arestrictionto constrain the results to be retrieved.- Parameters:
criterion- Thecriterionobject representing the restriction to be applied.- Returns:
- this (for method chaining)
-
addOrder
Add anorderingto the result set.- Parameters:
order- Theorderobject representing an ordering to be applied to the results.- Returns:
- this (for method chaining)
-
setFetchMode
Specify an association fetching strategy for an association or a collection of values.- Parameters:
associationPath- a dot seperated property pathmode- The fetch mode for the referenced association- Returns:
- this (for method chaining)
- Throws:
HibernateException- Indicates a problem applying the given fetch mode
-
setLockMode
Set the lock mode of the current entity- Parameters:
lockMode- The lock mode to be applied- Returns:
- this (for method chaining)
-
setLockMode
Set the lock mode of the aliased entity- Parameters:
alias- The previously assigned alias representing the entity to which the given lock mode should apply.lockMode- The lock mode to be applied- Returns:
- this (for method chaining)
-
createAlias
Join an association, assigning an alias to the joined association. Functionally equivalent tocreateAlias(String, String, int)usingCriteriaSpecification.INNER_JOINfor the joinType.- Parameters:
associationPath- A dot-seperated property pathalias- The alias to assign to the joined association (for later reference).- Returns:
- this (for method chaining)
- Throws:
HibernateException- Indicates a problem creating the sub criteria
-
createAlias
Join an association using the specified join-type, assigning an alias to the joined association. The joinType is expected to be one ofCriteriaSpecification.INNER_JOIN(the default),CriteriaSpecification.FULL_JOIN, orCriteriaSpecification.LEFT_JOIN.- Parameters:
associationPath- A dot-seperated property pathalias- The alias to assign to the joined association (for later reference).joinType- The type of join to use.- Returns:
- this (for method chaining)
- Throws:
HibernateException- Indicates a problem creating the sub criteria
-
createAlias
Criteria createAlias(String associationPath, String alias, int joinType, Criterion withClause) throws HibernateException Join an association using the specified join-type, assigning an alias to the joined association. The joinType is expected to be one ofCriteriaSpecification.INNER_JOIN(the default),CriteriaSpecification.FULL_JOIN, orCriteriaSpecification.LEFT_JOIN.- Parameters:
associationPath- A dot-seperated property pathalias- The alias to assign to the joined association (for later reference).joinType- The type of join to use.withClause- The criteria to be added to the join condition (ON clause)- Returns:
- this (for method chaining)
- Throws:
HibernateException- Indicates a problem creating the sub criteria
-
createCriteria
Create a new Criteria, "rooted" at the associated entity. Functionally equivalent tocreateCriteria(String, int)usingCriteriaSpecification.INNER_JOINfor the joinType.- Parameters:
associationPath- A dot-seperated property path- Returns:
- the created "sub criteria"
- Throws:
HibernateException- Indicates a problem creating the sub criteria
-
createCriteria
Create a new Criteria, "rooted" at the associated entity, using the specified join type.- Parameters:
associationPath- A dot-seperated property pathjoinType- The type of join to use.- Returns:
- the created "sub criteria"
- Throws:
HibernateException- Indicates a problem creating the sub criteria
-
createCriteria
Create a new Criteria, "rooted" at the associated entity, assigning the given alias. Functionally equivalent tocreateCriteria(String, String, int)usingCriteriaSpecification.INNER_JOINfor the joinType.- Parameters:
associationPath- A dot-seperated property pathalias- The alias to assign to the joined association (for later reference).- Returns:
- the created "sub criteria"
- Throws:
HibernateException- Indicates a problem creating the sub criteria
-
createCriteria
Criteria createCriteria(String associationPath, String alias, int joinType) throws HibernateException Create a new Criteria, "rooted" at the associated entity, assigning the given alias and using the specified join type.- Parameters:
associationPath- A dot-seperated property pathalias- The alias to assign to the joined association (for later reference).joinType- The type of join to use.- Returns:
- the created "sub criteria"
- Throws:
HibernateException- Indicates a problem creating the sub criteria
-
createCriteria
Criteria createCriteria(String associationPath, String alias, int joinType, Criterion withClause) throws HibernateException Create a new Criteria, "rooted" at the associated entity, assigning the given alias and using the specified join type.- Parameters:
associationPath- A dot-seperated property pathalias- The alias to assign to the joined association (for later reference).joinType- The type of join to use.withClause- The criteria to be added to the join condition (ON clause)- Returns:
- the created "sub criteria"
- Throws:
HibernateException- Indicates a problem creating the sub criteria
-
setResultTransformer
Set a strategy for handling the query results. This determines the "shape" of the query result.- Parameters:
resultTransformer- The transformer to apply- Returns:
- this (for method chaining)
- See Also:
-
setMaxResults
Set a limit upon the number of objects to be retrieved.- Parameters:
maxResults- the maximum number of results- Returns:
- this (for method chaining)
-
setFirstResult
Set the first result to be retrieved.- Parameters:
firstResult- the first result to retrieve, numbered from 0- Returns:
- this (for method chaining)
-
isReadOnlyInitialized
boolean isReadOnlyInitialized()Was the read-only/modifiable mode explicitly initialized?- Returns:
- true, the read-only/modifiable mode was explicitly initialized; false, otherwise.
- See Also:
-
isReadOnly
boolean isReadOnly()Should entities and proxies loaded by this Criteria be put in read-only mode? If the read-only/modifiable setting was not initialized, then the default read-only/modifiable setting for the persistence context is returned instead.- Returns:
- true, entities and proxies loaded by the criteria will be put in read-only mode false, entities and proxies loaded by the criteria will be put in modifiable mode
- Throws:
IllegalStateException- ifisReadOnlyInitialized()returnsfalseand this Criteria is not associated with a session.- See Also:
-
setReadOnly
Set the read-only/modifiable mode for entities and proxies loaded by this Criteria. This setting overrides the default setting for the persistence context.- Parameters:
readOnly- true, entities and proxies loaded by the criteria will be put in read-only mode false, entities and proxies loaded by the criteria will be put in modifiable mode- See Also:
-
setFetchSize
Set a fetch size for the underlying JDBC query.- Parameters:
fetchSize- the fetch size- Returns:
- this (for method chaining)
- See Also:
-
setTimeout
Set a timeout for the underlying JDBC query.- Parameters:
timeout- The timeout value to apply.- Returns:
- this (for method chaining)
- See Also:
-
setCacheable
Enable caching of this query result, provided query caching is enabled for the underlying session factory.- Parameters:
cacheable- Should the result be considered cacheable; default is to not cache (false).- Returns:
- this (for method chaining)
-
setCacheRegion
Set the name of the cache region to use for query result caching.- Parameters:
cacheRegion- the name of a query cache region, or null for the default query cache- Returns:
- this (for method chaining)
- See Also:
-
setComment
Add a comment to the generated SQL.- Parameters:
comment- a human-readable string- Returns:
- this (for method chaining)
-
setFlushMode
Override the flush mode for this particular query.- Parameters:
flushMode- The flush mode to use.- Returns:
- this (for method chaining)
-
setCacheMode
Override the cache mode for this particular query.- Parameters:
cacheMode- The cache mode to use.- Returns:
- this (for method chaining)
-
list
Get the results.- Returns:
- The list of matched query results.
- Throws:
HibernateException- Indicates a problem either translating the criteria to SQL, exeucting the SQL or processing the SQL results.
-
scroll
Get the results as an instance ofScrollableResults- Returns:
- The
ScrollableResultsrepresenting the matched query results. - Throws:
HibernateException- Indicates a problem either translating the criteria to SQL, exeucting the SQL or processing the SQL results.
-
scroll
Get the results as an instance ofScrollableResultsbased on the given scroll mode.- Parameters:
scrollMode- Indicates the type of underlying database cursor to request.- Returns:
- The
ScrollableResultsrepresenting the matched query results. - Throws:
HibernateException- Indicates a problem either translating the criteria to SQL, exeucting the SQL or processing the SQL results.
-
uniqueResult
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
-