У меня возникла проблема, связанная с тем, что в моем классе домена есть два возможных взаимоисключающих внешних ключа: либо серийный номер, либо устаревшее значение поиска.
Поскольку я не уверен, какой из них у меня будет для каждой данной записи, я сделал их обе обнуляемыми и добавил пользовательскую проверку, чтобы попытаться убедиться, что у меня есть одно и только одно значение.
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
Что мне не хватает?