ドメインクラスに、シリアル番号またはレガシールックアップ値の2つの潜在的な相互に排他的な外部キーがあるという問題があります。
特定のエントリにどちらを使用するかわからないため、null許容にし、カスタム検証を追加して、値が1つしかないことを確認しました。
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
私は何が欠けていますか?