(Quick Reference)

findAll

Purpose

Finds all of the domain class instances for the specified query

Examples

// everything
Book.findAll()
// with a positional parameter
Book.findAll("from Book as b where b.author=?",['Dan Brown'])
// 10 books from Dan Brown staring from 5th book ordered by release date
Book.findAll("from Book as b where b.author=? order by b.releaseDate",['Dan Brown'],[max:10,offset:5])

// examples with max/offset usage def query = "from Book as b where b.author='Dan Brown' order by b.releaseDate" // first 10 books Book.findAll(query,[max:10]) // 10 books starting from 5th Book.findAll(query,[max:10,offset:5])

// examples with named parameters (since 0.5) Book.findAll("from Book as b where b.author=:author", [author:'Dan Brown']) Book.findAll("from Book as b where b.author=:author", [author:'Dan Brown'], [max:10, offset:5]) Book.findAll("from Book as b where b.author in (:authors)", [authors:['Dan Brown','Jack London']])

// examples with tables join Book.findAll("from Book as b where not exists (from Borrow as br where br.book = b)")

// query by example def b = new Book(author:"Dan Brown") Book.findAll(b)

Description

The findAll method allows querying with Hibernate's query language HQL and querying by example for a collection of matching instances. Pagination can be controlled via the max and offset parameters appended to the end:

Book.findAll("from Book as b where b.author=:author", [author:'Dan Brown'], [max:10, offset:5])

The findAll method supports the 2nd level cache:

Book.findAll("from Book as b where b.author=:author", [author:'Dan Brown'], [max:10, offset:5, cache: true])

The basic syntax for the method is:

Book.findAll()
Book.findAll(String query)
Book.findAll(String query, Collection positionalParams)
Book.findAll(String query, Collection positionalParams, Map queryParams)
Book.findAll(String query, Map namedParams)
Book.findAll(String query, Map namedParams, Map queryParams)
Book.findAll(Book example)

If you have a join in your HQL, the method will return a List of Arrays containing domain class instances. You may wish to use executeQuery in this case so you have more flexibility in specifying what gets returned.

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
  • queryParams - A Map containing parameters 'max', and/or 'offset' and/or 'cache'
  • example - An instance of the domain class for query by example
  • readOnly - true if returned objects should not be automatically dirty-checked (simlar to read())
  • fetchSize - number of rows fetched by the underlying JDBC driver per round trip
  • flushMode - Hibernate FlushMode override, defaults to FlushMode.AUTO
  • timeout - query timeout in seconds