关于域对象中关系的规则

时间:2014-12-04 19:14:36

标签: grails gorm grails-domain-class

是否存在可以验证域对象中的关系的约束?

例如,如果您有一个包含Participants和Organization的Meeting对象。有没有办法让会议包含参与者是组织对象成员的约束?

1 个答案:

答案 0 :(得分:2)

除了您可以编写自己的约束类型之外,您还可以使用validator编写自己的验证例程。 Grails documentation涵盖了很多细节,但一个简单的例子是:

class Meeting {
  static belongsTo = [org: Orginization]
  static hasMany = [partcipants: Person]
  ...
  static constraints {
    org(validator: {val, obj ->
      if (obj.partcipants.find{ it.org.id != val.id }) return 'some.message.code'
    })
  }
  ...
}

请记住,上面是我的头顶(我头冷),但它应该指向正确的方向。