2010-06-07 6 views
6

एक grails आवेदन के लिए, मुझे वस्तुओं की एक सूची खोजने की जरूरत है जिनके "attr" तारों की गतिशील सूची में से एक है। वास्तविक HQL क्वेरी और अधिक जटिल है, लेकिन थोड़ा मैं साथ मदद की जरूरत यह है:एचक्यूएल/जीओआरएम में "मूल्य गतिशील सूची में कहां है" को व्यक्त करने के लिए कैसे?

def result = MyObject.executeQuery("select o from MyObject as o where o.attr in :list", 
    [list: aListOfStrings]) 

यह स्पष्ट रूप से सही वाक्य रचना नहीं है, Grails इसे वापस एक "अप्रत्याशित टोकन" के रूप में फेंकता है मुझ पर, :list पैरामीटर जा रहा है ।

क्या यह एचक्यूएल में संभव है? मैं विशेष रूप से कोडबेस के इस हिस्से में मानदंड का उपयोग नहीं करना चाहता हूं।

उत्तर

17

रख: कोष्ठक में सूची:

def result = MyObject.executeQuery(
    "select o from MyObject as o where o.attr in (:list)", 
    [list: aListOfStrings]) 
+0

मैं इस विचार (: सूची) और [सूची: एलीस्ट] के इस विचार का उपयोग Gral में Sql.java वर्ग के साथ नहीं कर सकता – AnujKu

+2

बर्ट 4 राष्ट्रपति! –

2

मुझे यकीन है कि कैसे प्रदर्शन की तुलना नहीं कर रहा हूँ, लेकिन मैं एक where क्वेरी में in कीवर्ड के साथ सीधे GORM में ऐसा करने में सक्षम था:

def users = MyObject.where { attr in aListOfStrings } 
संबंधित मुद्दे