2013-03-18 15 views
5

C'è un modo per utilizzare findWhere e un valore diverso (cercando di usarlo vs criteri)?grani findDove non uguale

E.g.

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

ho una soluzione di lavoro, ma chiedevo se ci fosse un modo per utilizzare findWhere trovo più semplice da leggere.

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

risposta

3

È possibile utilizzare uno dei metodi finder dinamici:

Books.findAllBySaleAndCategoryNotEqual(true, 'exclude me') 

o la cui le query (che utilizzano DetachedCriteria:

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

io non sono a conoscenza di un modo per farlo con findWhere ma esiste una buona sintassi per i rilevatori dinamici a due proprietà in cui uno è un boolean

Books.findSaleByCategoryNotEqual('exclude me') 

(o findNotSaleBy... se si desidera che la vendita sia false).