以下是我的情况:
一个名为League的类与一个名为Team的类之间的关系1-N。
一个联赛可以有多个球队。 在单元测试中,我试图将团队A分配给联赛1,而将同一团队A分配给联盟2.
两个联赛都指的是同一支球队A.但是球队A只能进入联赛2。
删除联赛1对A队的参考的最佳方法是什么?
修改
class League {
static hasMany = [ teams: Team, schedules: Schedule ]
String name
...
}
class Team {
static belongsTo = [ league: League ]
...
}
LeagueTest
def league1 = new League( name: "Serie A" )
def league2 = new League( name: "Premier League" )
def team = new Team( name: 'AC Milan', stadium: 'San siro', nation: 'Italy' )
league1.addToTeams( team )
assert league1.numOfTeams() > league2.numOfTeams() //true
league2.addToTeams( team )
assert league1.numOfTeams() == league2.numOfTeams() //true
assert team.league == league2 //true
assert team.league == league1 //false
答案 0 :(得分:2)
持久性的工作总是属于拥有的域类。
在你的情况下,League类负责持久性,即它是拥有类。因此,要删除联赛1对A队的引用,您需要在联盟对象上调用相应的方法。在你的情况下,这将成为:
league1.removeFromTeams(团队)//团队是需要从中删除的Team对象 //所需的联赛