2013-03-18 46 views
5

有沒有辦法使用findWhere和一個不等於值(試圖使用它與標準)?grails findWhere不等於

E.g.

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

我有一個有效的解決方案,但不知道是否有使用findWhere我覺得很簡單的閱讀方式。

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

回答

3

您可以使用動態查找方法:

Books.findAllBySaleAndCategoryNotEqual(true, 'exclude me') 

或其中的查詢(使用DetachedCriteria

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

我不知道的方式做到這一點與findWhere,但有一個很好的語法,用於兩個屬性的動態取景器,其中一個是boolean

Books.findSaleByCategoryNotEqual('exclude me') 

(或findNotSaleBy...如果您要銷售爲false)。