(Quick Reference)

find

Purpose

Finds the first matching result for the given query or null if no instance is found

Examples

// Dan brown's first book
Book.find("from Book as b where b.author='Dan Brown'")

// with a positional parameter
Book.find("from Book as b where b.author=?", ['Dan Brown'])

// with a named parameter
Book.find("from Book as b where b.author=:author", [author: 'Dan Brown'])

// use the query cache
Book.find("from Book as b where b.author='Dan Brown'", [cache: true])
Book.find("from Book as b where b.author=:author",
          [author: 'Dan Brown'],
          [cache: true])

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

// Using where criteria (since Grails 2.0)
Person p = Person.find { firstName == "Bart" }

Description

The find method allows querying with Hibernate’s query language HQL and querying by example. The basic syntax is:

Book.find(String query)
Book.find(String query, Collection positionalParams)
Book.find(String query, Collection positionalParams, Map queryParams)
Book.find(String query, Map namedParams)
Book.find(String query, Map namedParams, Map queryParams)
Book.find(Book example)
Book.find(Closure whereCriteria)

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 of query parameters. Currently, only cache is supported

  • example - An instance of the domain class for query by example