The Grails Framework 6.0.0

(Quick Reference) ## executeQuery ### Purpose Executes HQL queries ### 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
    Account.executeQuery("select distinct a.number from Account a " +
                         "where a.branch = ?", ['London'],
                         [max: 10, offset: 5])

    // using with Map of named parameters
    Account.executeQuery("select distinct a.number from Account a " +
                         "where a.branch = :branch",
                         [branch: 'London'])

    // using with Map of named parameters and pagination params
    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. HQL queries can return domain class instances, or `Array`s of specified data when the query selects individual fields or calculated values. The basic syntax is:
    Book.executeQuery(String query)
    Book.executeQuery(String query, List positionalParams)
    Book.executeQuery(String query, List 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 parameterized query `namedParams` - A `Map` of named parameters for a named parameterized query `metaParams` - A `Map` of pagination parameters `max` or/and `offset`, as well as Hibernate query parameters `readOnly`, `fetchSize`, `timeout`, and `flushMode` | Quick Reference (hide)