Package grails.orm
Class HibernateCriteriaBuilder
- java.lang.Object
-
- groovy.lang.GroovyObjectSupport
-
- org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder
-
- grails.orm.HibernateCriteriaBuilder
-
- All Implemented Interfaces:
groovy.lang.GroovyObject,org.grails.datastore.mapping.query.api.BuildableCriteria,org.grails.datastore.mapping.query.api.Criteria,org.grails.datastore.mapping.query.api.ProjectionList
public class HibernateCriteriaBuilder extends AbstractHibernateCriteriaBuilder
Wraps the Hibernate Criteria API in a builder. The builder can be retrieved through the "createCriteria()" dynamic static method of Grails domain classes (Example in Groovy):
def c = Account.createCriteria() def results = c { projections { groupProperty("branch") } like("holderFirstName", "Fred%") and { between("balance", 500, 1000) eq("branch", "London") } maxResults(10) order("holderLastName", "desc") }The builder can also be instantiated standalone with a SessionFactory and persistent Class instance:
new HibernateCriteriaBuilder(clazz, sessionFactory).list { eq("firstName", "Fred") }
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder
AbstractHibernateCriteriaBuilder.LogicalExpression
-
-
Field Summary
Fields Modifier and Type Field Description static org.hibernate.type.TypeBIG_DECIMALstatic org.hibernate.type.TypeBIG_INTEGERstatic org.hibernate.type.TypeBINARYstatic org.hibernate.type.TypeBLOBstatic org.hibernate.type.TypeBOOLEANstatic org.hibernate.type.TypeBYTEstatic org.hibernate.type.TypeCALENDARstatic org.hibernate.type.TypeCALENDAR_DATEstatic org.hibernate.type.TypeCHAR_ARRAYstatic org.hibernate.type.TypeCHARACTERstatic org.hibernate.type.TypeCHARACTER_ARRAYstatic org.hibernate.type.TypeCLASSstatic org.hibernate.type.TypeCLOBstatic org.hibernate.type.TypeCURRENCYstatic org.hibernate.type.TypeDATEstatic org.hibernate.type.TypeDOUBLEstatic org.hibernate.type.TypeFLOATstatic org.hibernate.type.TypeIMAGEstatic org.hibernate.type.TypeINTEGERstatic org.hibernate.type.TypeLOCALEstatic org.hibernate.type.TypeLONGstatic org.hibernate.type.TypeMATERIALIZED_BLOBstatic org.hibernate.type.TypeMATERIALIZED_CLOBstatic org.hibernate.type.TypeNUMERIC_BOOLEANstatic org.hibernate.type.TypeSERIALIZABLEstatic org.hibernate.type.TypeSHORTstatic org.hibernate.type.TypeSTRINGstatic org.hibernate.type.TypeTEXTstatic org.hibernate.type.TypeTIMEstatic org.hibernate.type.TypeTIMESTAMPstatic org.hibernate.type.TypeTIMEZONEstatic org.hibernate.type.TypeTRUE_FALSEstatic org.hibernate.type.TypeURLstatic org.hibernate.type.TypeUUID_BINARYstatic org.hibernate.type.TypeUUID_CHARstatic org.hibernate.type.TypeWRAPPER_BINARYstatic org.hibernate.type.TypeYES_NO-
Fields inherited from class org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder
ALIAS, aliasCount, aliasInstanceStack, aliasMap, aliasStack, AND, associationStack, BETWEEN, conversionService, count, COUNT_CALL, criteria, criteriaMetaClass, datastore, defaultFlushMode, EQUALS, EQUALS_PROPERTY, GET_CALL, GREATER_THAN, GREATER_THAN_OR_EQUAL, GREATER_THAN_OR_EQUAL_PROPERTY, GREATER_THAN_PROPERTY, hibernateSession, ID_EQUALS, ILIKE, IN, IS_EMPTY, IS_NOT_EMPTY, IS_NOT_NULL, IS_NULL, LESS_THAN, LESS_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL_PROPERTY, LESS_THAN_PROPERTY, LIKE, LIST_CALL, LIST_DISTINCT_CALL, logicalExpressionStack, NOT, NOT_EQUAL, NOT_EQUAL_PROPERTY, OR, ORDER_ASCENDING, ORDER_DESCENDING, orderEntries, paginationEnabledList, participate, projectionList, PROJECTIONS, resultTransformer, RLIKE, ROOT_CALL, ROOT_DO_CALL, scroll, SCROLL_CALL, sessionFactory, SET_RESULT_TRANSFORMER_CALL, SIZE_EQUALS, targetClass, uniqueResult
-
-
Constructor Summary
Constructors Constructor Description HibernateCriteriaBuilder(java.lang.Class targetClass, org.hibernate.SessionFactory sessionFactory)HibernateCriteriaBuilder(java.lang.Class targetClass, org.hibernate.SessionFactory sessionFactory, boolean uniqueResult)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcacheCriteriaMapping()protected voidcloseSession()Closes the session if it is copenprotected org.hibernate.criterion.DetachedCriteriaconvertToHibernateCriteria(org.grails.datastore.mapping.query.api.QueryableCriteria<?> queryableCriteria)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.protected voidcreateCriteriaInstance()protected java.util.ListcreatePagedResultList(java.util.Map args)protected java.lang.ObjectexecuteUniqueResultWithProxyUnwrap()protected java.lang.ClassgetClassForAssociationType(javax.persistence.metamodel.Attribute<?,?> type)static org.hibernate.criterion.DetachedCriteriagetHibernateDetachedCriteria(AbstractHibernateQuery query, org.grails.datastore.mapping.query.api.QueryableCriteria<?> queryableCriteria)static org.hibernate.criterion.DetachedCriteriagetHibernateDetachedCriteria(AbstractHibernateQuery query, org.grails.datastore.mapping.query.api.QueryableCriteria<?> queryableCriteria, java.lang.String alias)org.grails.datastore.mapping.query.api.Criteriarlike(java.lang.String propertyName, java.lang.Object propertyValue)Creates a Criterion with from the specified property name and "rlike" (a regular expression version of "like") expression-
Methods inherited from class org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder
addProjectionToList, addToCriteria, allEq, and, avg, avg, between, buildCriteria, cache, calculatePropertyName, calculatePropertyValue, convertArgumentList, convertOrder, count, count, count, countDistinct, countDistinct, createAlias, distinct, distinct, distinct, distinct, distinct, eq, eq, eq, eqAll, eqAll, eqProperty, executeLogicalExpression, exists, fetchMode, ge, geAll, geAll, geProperty, geSome, geSome, get, getDefaultFlushMode, getInstance, getTargetClass, groupProperty, groupProperty, gt, gtAll, gtAll, gte, gtProperty, gtSome, gtSome, id, idEq, idEquals, ilike, in, in, in, in, inList, inList, inList, inList, invokeMethod, isEmpty, isNotEmpty, isNotNull, isNull, join, join, le, leAll, leAll, leProperty, leSome, leSome, like, list, list, listDistinct, lock, lt, ltAll, ltAll, lte, ltProperty, ltSome, ltSome, max, max, min, min, ne, neProperty, not, notEqual, notExists, notIn, notIn, or, order, order, order, order, property, property, readOnly, resultTransformer, rowCount, rowCount, scroll, select, setConversionService, setDatastore, setDefaultFlushMode, setUniqueResult, sizeEq, sizeGe, sizeGt, sizeLe, sizeLt, sizeNe, sqlGroupProjection, sqlProjection, sqlProjection, sqlRestriction, sqlRestriction, sum, sum, throwRuntimeException, validateSimpleExpression
-
-
-
-
Field Detail
-
BOOLEAN
public static final org.hibernate.type.Type BOOLEAN
-
YES_NO
public static final org.hibernate.type.Type YES_NO
-
BYTE
public static final org.hibernate.type.Type BYTE
-
CHARACTER
public static final org.hibernate.type.Type CHARACTER
-
SHORT
public static final org.hibernate.type.Type SHORT
-
INTEGER
public static final org.hibernate.type.Type INTEGER
-
LONG
public static final org.hibernate.type.Type LONG
-
FLOAT
public static final org.hibernate.type.Type FLOAT
-
DOUBLE
public static final org.hibernate.type.Type DOUBLE
-
BIG_DECIMAL
public static final org.hibernate.type.Type BIG_DECIMAL
-
BIG_INTEGER
public static final org.hibernate.type.Type BIG_INTEGER
-
STRING
public static final org.hibernate.type.Type STRING
-
NUMERIC_BOOLEAN
public static final org.hibernate.type.Type NUMERIC_BOOLEAN
-
TRUE_FALSE
public static final org.hibernate.type.Type TRUE_FALSE
-
URL
public static final org.hibernate.type.Type URL
-
TIME
public static final org.hibernate.type.Type TIME
-
DATE
public static final org.hibernate.type.Type DATE
-
TIMESTAMP
public static final org.hibernate.type.Type TIMESTAMP
-
CALENDAR
public static final org.hibernate.type.Type CALENDAR
-
CALENDAR_DATE
public static final org.hibernate.type.Type CALENDAR_DATE
-
CLASS
public static final org.hibernate.type.Type CLASS
-
LOCALE
public static final org.hibernate.type.Type LOCALE
-
CURRENCY
public static final org.hibernate.type.Type CURRENCY
-
TIMEZONE
public static final org.hibernate.type.Type TIMEZONE
-
UUID_BINARY
public static final org.hibernate.type.Type UUID_BINARY
-
UUID_CHAR
public static final org.hibernate.type.Type UUID_CHAR
-
BINARY
public static final org.hibernate.type.Type BINARY
-
WRAPPER_BINARY
public static final org.hibernate.type.Type WRAPPER_BINARY
-
IMAGE
public static final org.hibernate.type.Type IMAGE
-
BLOB
public static final org.hibernate.type.Type BLOB
-
MATERIALIZED_BLOB
public static final org.hibernate.type.Type MATERIALIZED_BLOB
-
CHAR_ARRAY
public static final org.hibernate.type.Type CHAR_ARRAY
-
CHARACTER_ARRAY
public static final org.hibernate.type.Type CHARACTER_ARRAY
-
TEXT
public static final org.hibernate.type.Type TEXT
-
CLOB
public static final org.hibernate.type.Type CLOB
-
MATERIALIZED_CLOB
public static final org.hibernate.type.Type MATERIALIZED_CLOB
-
SERIALIZABLE
public static final org.hibernate.type.Type SERIALIZABLE
-
-
Constructor Detail
-
HibernateCriteriaBuilder
public HibernateCriteriaBuilder(java.lang.Class targetClass, org.hibernate.SessionFactory sessionFactory)
-
HibernateCriteriaBuilder
public HibernateCriteriaBuilder(java.lang.Class targetClass, org.hibernate.SessionFactory sessionFactory, boolean uniqueResult)
-
-
Method Detail
-
createAlias
public org.hibernate.Criteria createAlias(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 CriteriaSpecification.INNER_JOIN (the default), CriteriaSpecificationFULL_JOIN, or CriteriaSpecificationLEFT_JOIN.- Specified by:
createAliasin classAbstractHibernateCriteriaBuilder- 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:
org.hibernate.HibernateException- Indicates a problem creating the sub criteria- See Also:
AbstractHibernateCriteriaBuilder.createAlias(String, String)
-
executeUniqueResultWithProxyUnwrap
protected java.lang.Object executeUniqueResultWithProxyUnwrap()
- Specified by:
executeUniqueResultWithProxyUnwrapin classAbstractHibernateCriteriaBuilder
-
cacheCriteriaMapping
protected void cacheCriteriaMapping()
- Specified by:
cacheCriteriaMappingin classAbstractHibernateCriteriaBuilder
-
getClassForAssociationType
protected java.lang.Class getClassForAssociationType(javax.persistence.metamodel.Attribute<?,?> type)
- Specified by:
getClassForAssociationTypein classAbstractHibernateCriteriaBuilder
-
createPagedResultList
protected java.util.List createPagedResultList(java.util.Map args)
- Specified by:
createPagedResultListin classAbstractHibernateCriteriaBuilder
-
rlike
public org.grails.datastore.mapping.query.api.Criteria rlike(java.lang.String propertyName, java.lang.Object propertyValue)Creates a Criterion with from the specified property name and "rlike" (a regular expression version of "like") expression- Specified by:
rlikein interfaceorg.grails.datastore.mapping.query.api.Criteria- Specified by:
rlikein classAbstractHibernateCriteriaBuilder- Parameters:
propertyName- The property namepropertyValue- The ilike value- Returns:
- A Criterion instance
-
createCriteriaInstance
protected void createCriteriaInstance()
- Specified by:
createCriteriaInstancein classAbstractHibernateCriteriaBuilder
-
convertToHibernateCriteria
protected org.hibernate.criterion.DetachedCriteria convertToHibernateCriteria(org.grails.datastore.mapping.query.api.QueryableCriteria<?> queryableCriteria)
- Specified by:
convertToHibernateCriteriain classAbstractHibernateCriteriaBuilder
-
getHibernateDetachedCriteria
public static org.hibernate.criterion.DetachedCriteria getHibernateDetachedCriteria(AbstractHibernateQuery query, org.grails.datastore.mapping.query.api.QueryableCriteria<?> queryableCriteria)
-
getHibernateDetachedCriteria
public static org.hibernate.criterion.DetachedCriteria getHibernateDetachedCriteria(AbstractHibernateQuery query, org.grails.datastore.mapping.query.api.QueryableCriteria<?> queryableCriteria, java.lang.String alias)
-
closeSession
protected void closeSession()
Closes the session if it is copen- Overrides:
closeSessionin classAbstractHibernateCriteriaBuilder
-
-