(Quick Reference)
findOrCreateWhere
Purpose
Uses named arguments that match the property names of the domain class to produce a query that returns the first result. This
method behaves just like
findWhere except that it should never return null. If a matching instance cannot be found in the
database then a new instance is created, populated with values represented in the query parameters and returned. The difference between
this method and
findOrSaveWhere is that this method will not save any newly created instance where
findOrSaveWhere
does.
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.findOrCreateWhere(author:"Stephen King", title:"The Stand")
Description
Parameters:
queryParams - A map of key value pairs to be used in the query. If no matching instance is found in the database then this map is used to initialize a new instance.