2013-03-18 8 views
5

findWhere का उपयोग करने का कोई तरीका नहीं है और बराबर मान (इसे बनाम बनाम मानदंडों का उपयोग करने का प्रयास करने का कोई तरीका नहीं है)?grails पाते हैं जहां

उदा।

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

012 है
Books.findSaleByCategoryNotEqual('exclude me') 

(या findNotSaleBy... यदि आप false होने की बिक्री चाहते हैं)।