假设我们有这样的域层次结构:
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错误。有没有更好的方法来检查这个约束?
答案 0 :(得分:2)
嗯,也许
class Item {
...
Integer value
static belongsTo = [group: Group, category: Category]
static constraints = {group value: 'category'}
...
}
您还可以添加自定义验证程序以检查父组是否属于同一类别。
没试过。