Tôi gặp sự cố trong đó lớp miền của tôi có hai khóa bên ngoài có khả năng loại trừ lẫn nhau, một số sê-ri hoặc giá trị tra cứu cũ.Làm cách nào để tạo và xác thực XOR cho hai trường trong một lớp miền Grails?
Vì tôi không chắc mình sẽ có cái nào cho bất kỳ mục nhập cụ thể nào, tôi đã làm cho cả hai có thể vô hiệu và thêm xác thực tùy chỉnh để đảm bảo tôi có một và chỉ một giá trị.
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))
}
}
}
Tôi tạo ra các màn hình CRUD mặc định và cố gắng để tạo ra một mục nhập cho này lớp miền
information: Blah Blah
serialNumber:
legacyLookup: BLAHINDEX123
này chết trong validator với thông báo sau:
No such property: serialNumber for class: myproject.Sample
Tôi gì còn thiếu?
Điều này đã làm chính xác những gì tôi cần. Tôi đã nghĩ rằng tôi cần xác nhận một cách rõ ràng trên cả hai lĩnh vực, nhưng một trong những xử lý khác. Cảm ơn! – GeoGriffin