域类之间没有定义所有者:多对多关系

zor*_*119 5 grails grails-orm

这些是我的域类:

class Game {
    static hasMany = [players: User]
    static belongsTo = [owner: User]
}

class User {
    static hasMany = [games: Game]
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用它们,我会得到它们No owner defined between domain classes.所以我需要设置关系的所有者.添加static belongsTo = GameUser原因Domain classes cannot own each other in a many-to-many relationship.

我能想到的唯一的其他选择是添加static belongsTo = UserGame类,但我已经有一个belongsTo存在.

我该如何建模呢?

Sau*_*xit 5

class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}

class User {
    static hasMany = [games: Game]
}
Run Code Online (Sandbox Code Playgroud)

您必须指定关系的一侧作为所有者,通过这样做,您将使User域类成为多对多关系的所有者.

belongsTo字段控制addTo*()可以使用动态方法的位置.我们可以打电话,User.addToGames()因为Game belongsTo User.我们不能打电话Game.addToPlayers().


Jam*_*eeh 1

尝试这个:

class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}
Run Code Online (Sandbox Code Playgroud)