hasMany和hasOne如何在Grails中工作?

时间:2009-09-15 09:03:47

标签: grails groovy

我在定义与域类的一对一和一对多关系时遇到问题。 我有以下域类

class Team {
    static hasMany = [players: Player]
    static hasOne = [coach: Coach]
}

class Person {
    String name
}

class Player extends Person {
}

class Coach extends Person {
}

所以我的问题是:

1-我是否需要在Player和Coach中声明变量team

2-我是否还需要申报belongsTo

3-考虑到上述类,是否最好使用hasOne?

谢谢。

2 个答案:

答案 0 :(得分:2)

leebutt的回答有点小错误。

  1. 级联是另一种方式:如果你的教练/球员已经属于设置为Team,那么删除球队也会级联并删除教练/球员。

答案 1 :(得分:1)

  1. 仅当您希望能够通过player.team和coach.team
  2. 轻松导航时
  3. 取决于您是否要更新/删除级联。我想不会,因为删除教练或球员不应该删除球队,反之亦然?
  4. hasOne看起来对团队有意义>教练关系,但在Grails 1.1.1或更低版本中不存在。它可能在1.2(但它不在参考指南中)。
  5. 欢呼声