2013-03-18 6 views
5

Gibt es eine Möglichkeit, findWhere und einen nicht gleichwertigen Wert zu verwenden (versuchen, es vs Kriterien verwenden)?Grails findWhere nicht gleich

z.

Books.findWhere('sale' : true, 'category': ne('exclude me')) 

Ich habe eine Arbeitslösung, aber frage mich, ob es einen Weg findWhere verwenden ich es einfacher zu lesen finden.

def result = Books.createCriteria().get{ 
      eq('sale', true) 
      ne("category", 'exclude me') 
} 

Antwort

3

können Sie verwenden entweder die dynamischen Suchmethoden:

Books.findAllBySaleAndCategoryNotEqual(true, 'exclude me') 

oder die where-Abfragen (die DetachedCriteria verwenden:

Books.findAll { 
    (sale == true) && (category != 'exclude me') 
} 
2

Ich bin mir nicht bewusst ein Weg, es zu tun mit findWhere, aber es gibt eine nette Syntax für Zwei-Eigenschaft dynamische Finder, wo man eine boolean

012 ist
Books.findSaleByCategoryNotEqual('exclude me') 

(oder findNotSaleBy..., wenn Sie möchten, dass der Verkauf false ist).