(Quick Reference)

executeQuery

Purpose

Allows the execution of HQL queries against a domain class

Examples

// simple query
Account.executeQuery( "select distinct a.number from Account a" );
// using with list of parameters
Account.executeQuery( "select distinct a.number from Account a where a.branch = ? and a.created > ?", ['London',lastMonth] );
// using with a single parameter and pagination params (since 0.5)
Account.executeQuery( "select distinct a.number from Account a where a.branch = ?", ['London'], [max:10,offset:5] );
// using with Map of named parameters (since 0.5)
Account.executeQuery( "select distinct a.number from Account a where a.branch = :branch", [branch:'London'] );
// using with Map of named parameters and pagination params (since 0.5)
Account.executeQuery( "select distinct a.number from Account a where a.branch = :branch", [branch:'London', max:10, offset:5] );
// same as previous
Account.executeQuery( "select distinct a.number from Account a where a.branch = :branch", [branch:'London'], [max:10, offset:5] );
// tell underlying Hibernate Query object to not attach newly retrieved objects to the session, will only save with explicit save
Account.executeQuery( "select distinct a.number from Account a", null, [readOnly: true])
// time request out after 18 seconds
Account.executeQuery( "select distinct a.number from Account a", null, [timeout: 18])
// have Hibernate Query object return 30 rows at a time
Account.executeQuery( "select distinct a.number from Account a", null, [fetchSize: 30])
// modify the FlushMode of the Query (default is FlushMode.AUTO)
Account.executeQuery( "select distinct a.number from Account a", null, [flushMode: FlushMode.MANUAL])

Description

The executeQuery method allows the execution of arbitrary HQL queries that don't necessary return instances of a domain class. This is useful if you only want a subset of data instead of the whole object hierarchy. The basic syntax is:

Book.executeQuery( String query )
Book.executeQuery( String query, Collection positionalParams )
Book.executeQuery( String query, Collection positionalParams, Map metaParams )
Book.executeQuery( String query, Map namedParams )
Book.executeQuery( String query, Map namedParams, Map metaParams )

Parameters:

  • query - An HQL query
  • positionalParams - A List of parameters for a positional parametrized HQL query
  • namedParams - A Map of named parameters a HQL query
  • metaParams - A Map containing pagination parameters max or/and offset, as well as hibernate query parameters readOnly, fetchSize, timeout, and flushMode. (see examples above)