मुझे एक समस्या है जहां मेरी डोमेन क्लास में दो संभावित परस्पर अनन्य बाहरी कुंजी हैं, या तो एक सीरियल नंबर या विरासत लुकअप मान।Grails डोमेन क्लास में दो फ़ील्ड के लिए मैं कैसे और XOR सत्यापन बना सकता हूं?
चूंकि मुझे यकीन नहीं है कि मेरे पास किसी भी प्रविष्टि के लिए कौन सा होगा, मैंने उन्हें यह सुनिश्चित करने के लिए कस्टम और सत्यापन किया है कि मेरे पास एक और केवल एक मूल्य है।
package myproject
class Sample {
String information
String legacyLookup
String serialNumber
static constraints = {
information(nullable: true)
legacyLookup(nullable: true)
serialNumber(nullable: true)
legacyLookup validator: {
return ((serialNumber != null && legacyLookup == null) || (serialNumber == null && legacyLookup != null))
}
serialNumber validator: {
return ((serialNumber != null && legacyLookup == null) || (serialNumber == null && legacyLookup != null))
}
}
}
मैं डिफ़ॉल्ट CRUD स्क्रीन बनाया है और इस डोमेन वर्ग
information: Blah Blah
serialNumber:
legacyLookup: BLAHINDEX123
यह निम्न संदेश के साथ सत्यापनकर्ता में मर जाता है के लिए एक प्रवेश बनाने की कोशिश की:
No such property: serialNumber for class: myproject.Sample
मैं क्या कर रहा हूँ लापता?
यह वही किया जो मुझे चाहिए था। मैं सोच रहा था कि मुझे दोनों क्षेत्रों पर स्पष्ट रूप से सत्यापन की आवश्यकता है, लेकिन एक दूसरे को संभालता है। धन्यवाद! – GeoGriffin