オブジェクト階層にカスケードされた保存を取得するのに問題があります。以下は私のオブジェクト階層のコードです。
class Entity {
static hasMany = [attributes: Attribute]
}
class Attribute extends ValuePossessor {
static belongsTo = Entity
}
abstract class ValuePossessor {
def valueService
Value value
void setValue(val) {
this.value = valueService.Create(val)
this.value.possessor = this
}
}
abstract class Value {
static belongsTo = [possessor: ValuePossessor]
}
class StringValue extends Value {
String value
}
valueServiceは、正しい値の型(string、boolean、intなど)を作成する大きなswitchステートメントを持つ単純なサービスです。
Entity e = new Entity()
Attribute attr = new Attribute()
attr.setValue(1)
e.addToAttributes(attr)
e.save()
上記のコードはすべてのオブジェクトを正しく作成しますが、値オブジェクトの保存に失敗します。エンティティと属性は保存されますが、値は保存されません。値オブジェクトまでカスケードするために必要な識別子がありませんか?