क्षणिक - अनाज, अनाज, अनाज,

मुझे 3.1.4 का उपयोग करके एक क्षणिक संपत्ति का उपयोग करके मूल्यों को बांधने में परेशानी हो रही है।

इस डोमेन को एक उदाहरण के रूप में लेना:

class Domain {
Boolean b1
Boolean b2
Boolean b3

void setPropertyList(propertyList) {
if(propertyList.contains("someValue"))
this.b1 = true
}

static transients = ["propertyList"]

static constraints = {
propertyList bindable: true
}
}

मैं एक विशिष्ट संपत्ति का उपयोग करना चाहूंगा (यहां: propertyList) डेटा बाइंडिंग के लिए। यह गुण डेटा बाइंडिंग स्रोत में उपलब्ध है, लेकिन मेरे डोमेन में नहीं है। इसलिए मैंने एक क्षणिक और एक सेटर जोड़ा। क्षणिक को शामिल करने के लिए propertyList डेटा बाइंडिंग के लिए मैंने जोड़ा bindableबाधा।

सेटर setPropertyList डेटा बाइंडिंग के दौरान कहा जाता है। परिणामी डोमेन आवृत्ति के गुणों में अपेक्षा के अनुसार सभी गुण सेट हैं। लेकिन जब मैं परिणामी आवृत्ति को बचाने की कोशिश करता हूं तो मुझे निम्नलिखित अपवाद मिलते हैं:

groovy.lang.GroovyRuntimeException: Cannot read write-only property: propertyList
at org.grails.validation.ConstrainedPropertyBuilder.doInvokeMethod(ConstrainedPropertyBuilder.java:74)

ऐसा लगता है कि उदाहरण को मान्य करने के लिए कुछ मुसीबतें होती हैं।

इसे ठीक करने का कोई तरीका?

उत्तर:

जवाब के लिए 0 № 1

कुछ डिबगिंग के बाद, यह पता चला है कि "के लिए एक प्रकार मिल सकता है propertyList और इसलिए डेटा बाइंडिंग को छोड़ देता है।

एक गेटर जोड़ने से दाने को प्रकार का पता लगाने में मदद मिलती है। यह अपवाद से बचा जाता है।

List<String> getPropertyList() {}