2013-03-18 19 views
5

findWhere'u ve eşit olmayan bir değeri kullanmanın bir yolu var mı (bunları rakiplerine göre kullanmaya çalışıyorsunuz)?grails findWhere değil

E.g.

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

Ben çalışan bir solüsyon var, ama daha basit okumak için bulmak findWhere kullanmak için bir yol olup olmadığını merak ediyorum.

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

cevap

3

kullanabilirsiniz ya dinamik bulucu yöntemleri:

Books.findAllBySaleAndCategoryNotEqual(true, 'exclude me') 

veya DetachedCriteria kullanmak sorgular (burada:

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

Ben bir yol farkında değilim bunu yapmak için findWhere ile ancak iki özellikli dinamik bulucular için güzel bir sözdizimi var. Burada bir boolean

(veya findNotSaleBy... satıcısına sahip olmak istiyorsanız false).