में सभी वस्तुओं की आईडी प्राप्त करें मैं इस तरह एक वर्ग है। मैं इसे कई तरीके की कोशिश की है, हमेशा एक ही त्रुटि प्राप्त:एक सूची
java.lang.String cannot be cast to java.util.Collection
बातें मैं कोशिश की है में से कुछ:
def ids = Foo.findAllByBarInList(bars)*.id
def ids = Foo.findAllByBarInList(bars).collect{ it.id }
def ids = Foo.findAllByBarInList(bars).collect{ it -> it?.id }
अद्यतन:
मैं इतना split साथ bars
बना रही थी यह एक सरणी थी, सूची नहीं। उसने मुझे फेंक दिया क्योंकि Foo.findAllByBarInList(bars)
ने मेरी Foo
ऑब्जेक्ट्स को ठीक कर दिया, केवल तभी जब मैंने आईडी एकत्र करने की कोशिश की तो यह असफल रहा। अब मैं bars
tokenize के साथ बना हूं और सब ठीक है।
मैं क्योंकि दोनों 'collect' विधि और प्रसार ऑपरेटर' * .' ग्रूवी में आधारित हैं वापस इस सवाल का ग्रूवी टैग लगाया। – ubiquibacon
क्या आप वाकई जिस सूची की जांच कर रहे हैं वह एक सूची के रूप में सही तरीके से स्थापित है? 'Def ids = Foo.findAllByBarInList (बार) *। Id' का उपयोग करना मेरे लिए काम करता है। – Kelly
ग्रेल्स ग्रेवॉवी का उपयोग करने के बाद से मैं ग्रोवी टैग बंद कर दूंगा, इसलिए यह जरूरी नहीं है, और यह ग्रेल्स के भीतर ग्रोवी का उपयोग है, न कि ग्रोवी-विशिष्ट प्रश्न। एक ग्रोवी विशेषज्ञ जिसे Grails के साथ कोई अनुभव नहीं है, आपकी मदद करने में सक्षम नहीं होगा। इसी तरह आप जावा, गोरम, हाइबरनेट, स्प्रिंग, प्रोग्रामिंग टैग को छोड़ सकते हैं;) –