Class ByHql
java.lang.Object
edu.internet2.middleware.grouper.hibernate.ByHql
- All Implemented Interfaces:
HqlQuery
for simple HQL, use this instead of inverse of control.
this will do proper error handling and descriptive exception
handling. This will by default use the transaction modes
GrouperTransactionType.READONLY_OR_USE_EXISTING, and
GrouperTransactionType.READ_WRITE_OR_USE_EXISTING depending on
if a transaction is needed.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic int
query count exec queries, used for testing -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
copyFieldsTo
(edu.internet2.middleware.grouper.hibernate.ByQueryBase byQueryBase) copy fields from this to the argumentcreateQuery
(String theHqlQuery) set the query to runvoid
call hql executeUpdate, e.g.int
call hql executeUpdate, e.g.protected HibernateSession
boolean
if we should ignore hooks<T> List<T>
call hql list result e.g.<K,
V> Map<K, V> call hql list result, and put the results in map with the key as one of the fields<S> Set<S>
call hql list result, and put the results in an ordered set e.g.static void
options
(QueryOptions queryOptions1) add a paging/sorting/resultSetSize, etc to the queryprotected edu.internet2.middleware.grouper.hibernate.ByQueryBase
set
(HibernateSession theHibernateSession2) set the hibernate session to re-use, or null for a new one byCriteriaStatic().set(hibernateSession2).select(...)setCacheable
(Boolean cacheable) assign if this query is cacheable or not.setCacheRegion
(String cacheRegion) cache region for cachesetCollectionInClause
(StringBuilder query, Collection<?> params) append a certain number of params, and commas, and attach the data.void
setConvertHqlColumnsToObject
(boolean theConvertHqlColumnsToObject) if use resulttransformer to change columns to objectassign data to the bind varsetGrouperTransactionType
(GrouperTransactionType theGrouperTransactionType) assign a different grouperTransactionType (e.g.edu.internet2.middleware.grouper.hibernate.ByQueryBase
setIgnoreHooks
(boolean theIgnoreHooks) if we should ignore hookssetInteger
(String bindVarName, Integer value) assign data to the bind varassign data to the bind varassign data to the bind varassign data to the bind varsetTimestamp
(String bindVarName, Date value) assign data to the bind vartoString()
string value for error handling<T> T
uniqueResult
(Class<T> returnType) call hql unique result (returns one or null) e.g.
-
Field Details
-
queryCountQueries
public static int queryCountQueriesquery count exec queries, used for testing
-
-
Constructor Details
-
ByHql
- Parameters:
theHibernateSession
-
-
-
Method Details
-
setConvertHqlColumnsToObject
public void setConvertHqlColumnsToObject(boolean theConvertHqlColumnsToObject) if use resulttransformer to change columns to object- Parameters:
theConvertHqlColumnsToObject
-
-
setTimestamp
assign data to the bind var- Parameters:
bindVarName
-value
-- Returns:
- this object for chaining
-
setGrouperTransactionType
assign a different grouperTransactionType (e.g. for autonomous transactions)- Parameters:
theGrouperTransactionType
-- Returns:
- the same object for chaining
-
setCacheable
assign if this query is cacheable or not.- Parameters:
cacheable
- the cacheable to set- Returns:
- this object for chaining
-
toString
string value for error handling -
createQuery
set the query to run- Parameters:
theHqlQuery
-- Returns:
- this object for chaining
-
setCacheRegion
cache region for cache- Parameters:
cacheRegion
- the cacheRegion to set- Returns:
- this object for chaining
-
setCollectionInClause
append a certain number of params, and commas, and attach the data. Note any params before the in clause need to be already attached, since these will attach now (ordering issue)- Parameters:
query
-params
- collection of params, note, this is for an inclause, so it cant be null- Returns:
- this for chaining
-
setString
assign data to the bind var -
setLong
assign data to the bind var- Parameters:
bindVarName
-value
- is long, primitive so not null- Returns:
- this object for chaining
-
setInteger
assign data to the bind var- Parameters:
bindVarName
-value
- is long, primitive so not null- Returns:
- this object for chaining
-
uniqueResult
call hql unique result (returns one or null) e.g. Hib3GroupDAO hib3GroupDAO = HibernateSession.byHqlStatic() .createQuery("from Hib3GroupDAO as g where g.uuid = :uuid") .setCacheable(false) .setCacheRegion(KLASS + ".Exists") .setString("uuid", uuid).uniqueResult(Hib3GroupDAO.class);
- Type Parameters:
T
- is the template- Parameters:
returnType
- type of the result (in future can use this for typecasting)- Returns:
- the object or null if none found
- Throws:
GrouperDAOException
-
executeUpdate
call hql executeUpdate, e.g. delete or update statement
- Throws:
GrouperDAOException
- TODO remove in new grouper version
-
executeUpdateInt
call hql executeUpdate, e.g. delete or update statement
- Returns:
- number of records affected
- Throws:
GrouperDAOException
- TODO remove in new grouper version
-
list
call hql list result e.g. List
hib3GroupTypeTupleDAOs = HibernateSession.byHqlStatic() .createQuery("from Hib3GroupTypeTupleDAO as gtt where gtt.groupUuid = :group") .setCacheable(false).setString("group", uuid).list(Hib3GroupTypeTupleDAO.class); - Type Parameters:
T
- is the template- Parameters:
returnType
- type of the result (can typecast)- Returns:
- the list or the empty list if not found (only null if not retrieving results)
- Throws:
GrouperDAOException
-
listMap
public <K,V> Map<K,V> listMap(Class<K> keyClass, Class<V> valueClass, String keyPropertyName) throws GrouperDAOException call hql list result, and put the results in map with the key as one of the fields
- Type Parameters:
K
- is the template of the value of the mapV
- is the template of the value of the map- Parameters:
valueClass
- type of the result (can typecast)keyClass
- is the type of the key of the mapkeyPropertyName
- name of the javabeans property for the key in the map- Returns:
- the ordered set or the empty set if not found (never null)
- Throws:
GrouperDAOException
-
listSet
call hql list result, and put the results in an ordered set e.g. Set
groupTypeTupleDTOs = HibernateSession.byHqlStatic() .createQuery("from Hib3GroupTypeTupleDAO as gtt where gtt.groupUuid = :group") .setCacheable(false).setString("group", uuid).listSet(Hib3GroupTypeTupleDAO.class); - Type Parameters:
S
- is the template- Parameters:
returnType
- type of the result (can typecast)- Returns:
- the ordered set or the empty set if not found (never null)
- Throws:
GrouperDAOException
-
setScalar
assign data to the bind var -
options
add a paging/sorting/resultSetSize, etc to the query- Parameters:
queryOptions1
-- Returns:
- this for chaining
-
setDouble
assign data to the bind var- Parameters:
bindVarName
-value
- is double- Returns:
- this object for chaining
-
setIgnoreHooks
public edu.internet2.middleware.grouper.hibernate.ByQueryBase setIgnoreHooks(boolean theIgnoreHooks) if we should ignore hooks- Parameters:
theIgnoreHooks
-- Returns:
- if we should ignore hooks
-
isIgnoreHooks
public boolean isIgnoreHooks()if we should ignore hooks- Returns:
- if we should ignore hooks
-
copyFieldsTo
protected void copyFieldsTo(edu.internet2.middleware.grouper.hibernate.ByQueryBase byQueryBase) copy fields from this to the argument- Parameters:
byQueryBase
-
-
getHibernateSession
- Returns:
- Returns the hibernateSession.
-
set
protected edu.internet2.middleware.grouper.hibernate.ByQueryBase set(HibernateSession theHibernateSession2) set the hibernate session to re-use, or null for a new one byCriteriaStatic().set(hibernateSession2).select(...)- Parameters:
theHibernateSession2
- is the session to reuse- Returns:
- this for chaining
-
main
- Parameters:
args
-
-