【发布时间】:2015-03-24 14:36:40
【问题描述】:
我有两个通过多对多关系相关的域类(简化)。
一个团队可以有多个玩家,一个玩家可以属于多个团队。
当我调用团队控制器的'save'操作时:
- 一名玩家被保存在桌子上。 (如预期)
- 一个团队被保存在表中。 (如预期)
- 当我打印 team.players 和 player.teams 时,我看到了正确的输出(见下面的代码)
- 关系表 (TEAM_PLAYERS) 中没有保存任何内容。为什么会这样?我需要自己在连接表中输入吗?如果此表没有更新,我如何看到第 3 点的正确输出?
Team.groovy 是:
class Team {
static hasMany = [players : Player]
String name;
String size;
}
Player.groovy 是:
class Player {
static hasMany = [teams : Team]
static belongsTo = Team
String fullName;
String age;
}
TeamController.groovy 是:
class TeamController {
def save() {
def player = new Player(fullName : "John Doe", age : "21").save()
def team = new Team(name : "LocalXI", size : "1").addToPlayers(player).save();
println "The players in the team are : " + team.players
println "The teams this player belongs to are : " + player.teams
}
}
输出(当我调用“保存”操作时):
The players in the team are : [John Doe]
The teams this player belongs to are : [LocalXI]
我是 Grails 和 Groovy 的新手,我花了很多时间试图弄清楚这一点。
【问题讨论】:
-
您是否尝试过在domain classes 中指定连接表:
标签: grails many-to-many grails-orm