Grails:相同两个对象之间的多个关系

时间:2015-07-29 20:19:16

标签: grails

如何定义如下关系: 一个人可以属于许多项目。一个人可以是项目的技术联系人,或者他们可以是项目的业务联系人,也可以是两者。如果该人被删除,项目不会被删除。如果项目被删除,则该人不会被删除。

class Project { 
  String name
  Person technicalContact
  Person businessContact

  static constraints = {
  }
}

class Person {
  String firstName 
  String lastName
  String email
  String phone
  String department

  static constraints = {
  }
}

1 个答案:

答案 0 :(得分:1)

您可以在一个表格中拥有2个一对多

class Project { 
  String name
}

class Person {
  String firstName 
  String lastName
  String email
  String phone
  String department

  static hasMany = [technicalContactForProjects: Project ,
                  businessContactForProjects: Project 
]
}

Grails将自动从2 hasMany 创建2个关系表,因此您可以删除其关系而不删除实际的人或项目。