限制域列表上的唯一约束

use*_*110 1 grails grails-domain-class

如果我有一个域Person和一个Domain Hobby,并且Person具有很多Hobby,那么如何确保同一Hobby不会多次添加到Person集合中。

即像

`

   class Hobby {
      String name
      static belongsTo = [person: Person] 
   }
   class Person
      String name

      static hasMany =[hobby: Hobby]

      static constraints= {
        hobby.name unique: true           //like this
      }
   }   
Run Code Online (Sandbox Code Playgroud)

Gre*_*egg 5

我知道已经回答了,但是最简单的方法实际上是这样做的:

class Hobby {
  String name
  static belongsTo = [person: Person] 

  static constraints = {
    name unique: 'person'
  }
}
Run Code Online (Sandbox Code Playgroud)

这将确保a hobby的父名称具有唯一的名称person。无需自定义验证器。