2013-03-18 44 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)。