Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Grails中hasMany和hasOne是如何工作的?_Grails_Groovy - Fatal编程技术网

在Grails中hasMany和hasOne是如何工作的?

在Grails中hasMany和hasOne是如何工作的?,grails,groovy,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-我是否需要在球员和教练中声明变量tea

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

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

class Person {
    String name
}

class Player extends Person {
}

class Coach extends Person {
}
因此,我的问题是:

1-我是否需要在球员和教练中声明变量
team

2-我是否也需要声明
属于

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

多谢各位

  • 仅当您希望能够通过player.team和coach.team轻松导航时
  • 取决于是否要级联更新/删除。我认为不应该,因为删除教练或球员不应该删除球队,反之亦然
  • hasOne看起来对team>coach关系有意义,但是它在Grails1.1.1或更低版本中不存在。它可能在1.2中(但不在参考指南中)
  • 干杯


    利巴特的回答有一个小错误

  • 级联是另一种方式:如果您的教练/球员已将belongs设置为Team,则删除Team将级联并删除教练/球员