Grails 对域列表的唯一约束

标签 grails grails-domain-class

如果我有一个域 Person 和一个域 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
      }
   }   

最佳答案

我知道这个问题已经得到解答,但最简单的方法实际上是这样做:

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

  static constraints = {
    name unique: 'person'
  }
}

这将确保爱好对其父对象拥有唯一的名称。不需要自定义验证器。

关于Grails 对域列表的唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40911360/

相关文章:

grails - Grails本地化,数字输入

angularjs - 可以在Angular Asset管道中使用Grails分页标记吗?

unit-testing - @TestFor 在域的单元测试中做什么?

unit-testing - 如何编写Grails delete()方法的测试

grails - 在Grails子类中重写overrideTo/hasMany

grails - Grails UI(插件)对话框未触发 Controller 操作

grails - 如何终止以 "run-app"启动的 Grails 2.3 应用程序?

grails - 使用Grails和Acegi插件捕获登录/注销和登录尝试

grails - Grails将问卷调查数据映射到bean

java - chalice /hibernate : No row with the given identifier exists