(Quick Reference)

withCriteria

Purpose

Allows inline execution of Criteria queries. See the createCriteria method for reference.

Return value

If no matching records are found, an empty List is returned.

If a projection is specified:

  • returns a single value if it only contains one field

  • a List in case there are multiple fields in the projection

Otherwise, it will return a List of matched instances of the class calling withCriteria.

Examples

def results = Book.withCriteria {
    def now = new Date()
    between('releaseDate', now-7, now)
    like('title', '%Groovy%')
}

Description

The withCriteria method allows the inline definition of Criteria. Arguments to the [http://grails.github.io/grails-data-mapping/latest/api/grails/orm/HibernateCriteriaBuilder.html] can be passed as the first parameter:

def book = Book.withCriteria(uniqueResult: true) {
    def now = new Date()
    between('releaseDate', now-7, now)
    like('title', '%Groovy%')
}

Parameters:

  • arguments (optional) - A map of named arguments to be set on the Criteria instance

  • closure - A closure that defines the criteria