私は、私のドメインクラスに相互排他的な2つの外部キー、シリアル番号または従来のルックアップ値があるという問題があります。Grailsドメインクラスの2つのフィールドの作成とXOR検証はどのようにして行いますか?
特定のエントリに対してどのエントリがあるか分からないため、これらのエントリをnullableにしてカスタムの検証を追加して、1つの値しか持たないようにしました。私は何
No such property: serialNumber for class: myproject.Sample
:
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
を試してみました行方不明?
これはまさに私が必要としたことでした。私は両方のフィールドで明示的に検証が必要だと考えていましたが、一方は他方のフィールドを処理します。ありがとう! – GeoGriffin