मैं एक डोमेन वस्तु (बिल्ली) है इस तरह:Grails/hasmany स्ट्रिंग के साथ GORM मापदंड क्वेरी
class Cat {
String name
static hasMany = [
nicknames: String
]
}
(एक बिल्ली एक नाम है, और भी कई उपनाम हैं (जो तार कर रहे हैं))
और मैं कुछ प्रचलित नामों के साथ सभी बिल्लियों से पूछताछ करने की कोशिश कर रहा हूं।
मैं इस की कोशिश की है:
PagedResultList getCatsByNickname(String nickname, Map params) {
PagedResultList results = Cat.createCriteria().list(params) {
'ilike'('nicknames','%'+nickname+'%')
}
return results
}
लेकिन यह किसी भी परिणाम देता है कभी नहीं। इस (अगर मैं क्वेरी को बदलने सिर्फ सरल नाम विशेषता का उपयोग करने के लिए, यह है कि नाम के साथ सभी बिल्लियों खोजने से काम करता है, लेकिन मैं उपनाम के खिलाफ क्वेरी करना चाहते हैं।)
मैं भी करने की कोशिश की:
PagedResultList getCatsByNickname(String nickname, Map params) {
PagedResultList results = Cat.createCriteria().list(params) {
'nicknames' {
'ilike'('nicknames','%'+nickname+'%')
}
}
return results
}
लेकिन मुझे त्रुटि मिलती है: org.hibernate.MappingException: संग्रह एक एसोसिएशन नहीं था: example.Cat.nicknames
तो सवाल यह है कि मैं किसी प्रकार के स्ट्रिंग के खिलाफ कैसे पूछूं?
कुछ लोगों को एक ही सवाल पूछने: http://grails.1312388.n4.nabble.com/Criteria -query-on-Properties-of-type-list-lt-String-gt-td1325707.html http://grails.1312388.n4.nabble.com/GORM-how-to-set-criteria-for-object -with-list-or-set-of-strings-td1388277.html – McDave
यह बग आपको मिलने वाली त्रुटि का कारण प्रतीत होता है: [GRAILS-5887] (https://jira.grails.org/browse/GRAILS -5887) – cweston