Grails:域层次结构中的字段唯一性

时间:2013-09-08 19:22:40

标签: validation grails gorm

假设我们有这样的域层次结构:

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 类中的字段在一个类别中应该是唯一的。我们怎样才能做到这一点?

我尝试使用条件编写自定义验证器,但最后我得到了“在异常发生后不刷新会话”Hibernate错误。有没有更好的方法来检查这个约束?

1 个答案:

答案 0 :(得分:2)

嗯,也许

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

您还可以添加自定义验证程序以检查父组是否属于同一类别。

没试过。