(Quick Reference)

findWhere

Purpose

Uses named arguments corresponding to domain class property names to execute a query returning the first matching result.

Examples

Given the domain class:

class Book {

   String title
   Date releaseDate
   String author

   static constraints = {
      releaseDate nullable: true
   }
}

You can query in the form:

def book = Book.findWhere(author: "Stephen King", title: "The Stand")

boolean isReleased = Book.findWhere(author: "Stephen King",
                                    title: "The Stand",
                                    releaseDate: null) != null

Description

findWhere returns the first matching instance, or null when no instance matches. A null value in the argument map matches rows where that property is null.

Only domain class property names may be used as keys in the argument map. Invalid property names are rejected instead of being interpolated into the generated query.

Parameters:

  • queryParams - A Map of key/value pairs to be used in the query

  • args - Optional query arguments such as offset, cache, readOnly, fetchSize, timeout, flushMode, and lock. findWhere always limits the query to one result.