FileDocCategorySizeDatePackage
Criteria.javaAPI DocHibernate 3.2.510996Mon Jan 23 14:21:02 GMT 2006org.hibernate

Criteria

public interface Criteria implements org.hibernate.criterion.CriteriaSpecification
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.
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
Session#createCriteria(java.lang.Class)
see
org.hibernate.criterion.Restrictions
see
org.hibernate.criterion.Projections
see
org.hibernate.criterion.Order
see
org.hibernate.criterion.Criterion
see
org.hibernate.criterion.Projection
see
org.hibernate.criterion.DetachedCriteria a disconnected version of this API
author
Gavin King

Fields Summary
Constructors Summary
Methods Summary
public org.hibernate.Criteriaadd(org.hibernate.criterion.Criterion criterion)
Add a {@link Criterion restriction} to constrain the results to be retrieved.

param
criterion The {@link Criterion criterion} object representing the restriction to be applied.
return
this (for method chaining)

public org.hibernate.CriteriaaddOrder(org.hibernate.criterion.Order order)
Add an {@link Order ordering} to the result set.

param
order The {@link Order order} object representing an ordering to be applied to the results.
return
this (for method chaining)

public org.hibernate.CriteriacreateAlias(java.lang.String associationPath, java.lang.String alias)
Join an association, assigning an alias to the joined association.

Functionally equivalent to {@link #createAlias(String, String, int)} using {@link #INNER_JOIN} for the joinType.

param
associationPath A dot-seperated property path
param
alias The alias to assign to the joined association (for later reference).
return
this (for method chaining)

public org.hibernate.CriteriacreateAlias(java.lang.String associationPath, java.lang.String alias, int joinType)
Join an association using the specified join-type, assigning an alias to the joined association.

The joinType is expected to be one of {@link #INNER_JOIN} (the default), {@link #FULL_JOIN}, or {@link #LEFT_JOIN}.

param
associationPath A dot-seperated property path
param
alias The alias to assign to the joined association (for later reference).
param
joinType The type of join to use.
return
this (for method chaining)

public org.hibernate.CriteriacreateCriteria(java.lang.String associationPath)
Create a new Criteria, "rooted" at the associated entity.

Functionally equivalent to {@link #createCriteria(String, int)} using {@link #INNER_JOIN} for the joinType.

param
associationPath A dot-seperated property path
return
the created "sub criteria"

public org.hibernate.CriteriacreateCriteria(java.lang.String associationPath, int joinType)
Create a new Criteria, "rooted" at the associated entity, using the specified join type.

param
associationPath A dot-seperated property path
param
joinType The type of join to use.
return
the created "sub criteria"

public org.hibernate.CriteriacreateCriteria(java.lang.String associationPath, java.lang.String alias)
Create a new Criteria, "rooted" at the associated entity, assigning the given alias.

Functionally equivalent to {@link #createCriteria(String, String, int)} using {@link #INNER_JOIN} for the joinType.

param
associationPath A dot-seperated property path
param
alias The alias to assign to the joined association (for later reference).
return
the created "sub criteria"

public org.hibernate.CriteriacreateCriteria(java.lang.String associationPath, java.lang.String alias, int joinType)
Create a new Criteria, "rooted" at the associated entity, assigning the given alias and using the specified join type.

param
associationPath A dot-seperated property path
param
alias The alias to assign to the joined association (for later reference).
param
joinType The type of join to use.
return
the created "sub criteria"

public java.lang.StringgetAlias()
Get the alias of the entity encapsulated by this criteria instance.

return
The alias for the encapsulated entity.

public java.util.Listlist()
Get the results.

return
The list of matched query results.

public ScrollableResultsscroll()
Get the results as an instance of {@link ScrollableResults}

return
The {@link ScrollableResults} representing the matched query results.

public ScrollableResultsscroll(ScrollMode scrollMode)
Get the results as an instance of {@link ScrollableResults} based on the given scroll mode.

param
scrollMode Indicates the type of underlying database cursor to request.
return
The {@link ScrollableResults} representing the matched query results.

public org.hibernate.CriteriasetCacheMode(CacheMode cacheMode)
Override the cache mode for this particular query.

param
cacheMode The cache mode to use.
return
this (for method chaining)

public org.hibernate.CriteriasetCacheRegion(java.lang.String cacheRegion)
Set the name of the cache region to use for query result caching.

param
cacheRegion the name of a query cache region, or null for the default query cache
return
this (for method chaining)
see
#setCacheable

public org.hibernate.CriteriasetCacheable(boolean cacheable)
Enable caching of this query result, provided query caching is enabled for the underlying session factory.

param
cacheable Should the result be considered cacheable; default is to not cache (false).
return
this (for method chaining)

public org.hibernate.CriteriasetComment(java.lang.String comment)
Add a comment to the generated SQL.

param
comment a human-readable string
return
this (for method chaining)

public org.hibernate.CriteriasetFetchMode(java.lang.String associationPath, FetchMode mode)
Specify an association fetching strategy for an association or a collection of values.

param
associationPath a dot seperated property path
param
mode The fetch mode for the referenced association
return
this (for method chaining)

public org.hibernate.CriteriasetFetchSize(int fetchSize)
Set a fetch size for the underlying JDBC query.

param
fetchSize the fetch size
return
this (for method chaining)
see
java.sql.Statement#setFetchSize

public org.hibernate.CriteriasetFirstResult(int firstResult)
Set the first result to be retrieved.

param
firstResult the first result to retrieve, numbered from 0
return
this (for method chaining)

public org.hibernate.CriteriasetFlushMode(FlushMode flushMode)
Override the flush mode for this particular query.

param
flushMode The flush mode to use.
return
this (for method chaining)

public org.hibernate.CriteriasetLockMode(LockMode lockMode)
Set the lock mode of the current entity

param
lockMode The lock mode to be applied
return
this (for method chaining)

public org.hibernate.CriteriasetLockMode(java.lang.String alias, LockMode lockMode)
Set the lock mode of the aliased entity

param
alias The previously assigned alias representing the entity to which the given lock mode should apply.
param
lockMode The lock mode to be applied
return
this (for method chaining)

public org.hibernate.CriteriasetMaxResults(int maxResults)
Set a limit upon the number of objects to be retrieved.

param
maxResults the maximum number of results
return
this (for method chaining)

public org.hibernate.CriteriasetProjection(org.hibernate.criterion.Projection projection)
Used to specify that the query results will be a projection (scalar in nature). Implicitly specifies the {@link #PROJECTION} result transformer.

The individual components contained within the given {@link Projection projection} determines the overall "shape" of the query result.

param
projection The projection representing the overall "shape" of the query results.
return
this (for method chaining)

public org.hibernate.CriteriasetResultTransformer(org.hibernate.transform.ResultTransformer resultTransformer)
Set a strategy for handling the query results. This determines the "shape" of the query result.

param
resultTransformer The transformer to apply
return
this (for method chaining)
see
#ROOT_ENTITY
see
#DISTINCT_ROOT_ENTITY
see
#ALIAS_TO_ENTITY_MAP
see
#PROJECTION

public org.hibernate.CriteriasetTimeout(int timeout)
Set a timeout for the underlying JDBC query.

param
timeout The timeout value to apply.
return
this (for method chaining)
see
java.sql.Statement#setQueryTimeout

public java.lang.ObjectuniqueResult()
Convenience method to return a single instance that matches the query, or null if the query returns no results.

return
the single result or null
throws
HibernateException if there is more than one matching result