(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 will never return 
null.  If a matching instance cannot be found then a new instance will be created, populated with values from the query parameters and returned.  The difference between this method and 
findOrSaveWhere is that this method will not save a 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- Mapof key/value pairs to be used in the query. If no matching instance is found then this data is used to initialize a new instance.