0

次のようなドメイン階層があるとします。

class Category {
...
    static hasMany = [groups: Group]
...
}

class Group {
...
    static belongsTo = [category: Category]
    static hasMany = [items: Item]
...
}

class Item {
...
    Integer value
    static belongsTo = [group: Group]
...
}

Itemクラスのフィールドは、 1 つのCategory内で一意である必要があります。どうすればこれを達成できますか?

基準を使用してカスタムバリデータを作成しようとしましたが、最終的に「例外が発生した後にセッションをフラッシュしないでください」という Hibernate エラーが発生しました。この制約を確認するより良い方法はありますか?

4

1 に答える 1

2

うーん多分

class Item {
    ...
    Integer value
    static belongsTo = [group: Group, category: Category]
    static constraints = {group value: 'category'}
    ...
}

また、カスタム バリデーターを追加して、親グループが同じカテゴリに属しているかどうかを確認することもできます。

テストしませんでした。

于 2013-09-09T11:06:51.890 に答える