私が次のグレイルドメインエンティティを持っていると仮定します:
class A { ... }
class B { ... }
3番目のエンティティでは、次のように1対多の関係があります。
class C {
static belongsTo = [a: A, b: B]
static constraints {
a unique: 'b'
}
}
グレイルでは、クラスの両方のプロパティ(a
と)に基づいて一意の関係を定義できるので、との同じ組み合わせを持つ2つのインスタンスを作成することはできませんか?b
C
C
a
b
編集:私のテストケースは次のとおりです:
void testCompositeUniqueConstraint() {
A a = // ...
B b = // ...
C existing = // ...
existing.a = a
existing.b = b
mockForConstraintsTests(C, [existing])
C c = // ...
c.a = a
c.b = b
assertFalse c.validate()
}
私のテストクラスには、@Mock([A, B])
注釈を含めました。このテストは失敗すると思いますが、合格です。