0

这是我的情况:

一个名为 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 ]
    ...
}

联赛测试

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
4

1 回答 1

2

持久性的工作始终属于拥有域类。

在您的情况下, League 类负责持久性,即它是拥有类。因此,要删除联赛 1 对球队 A 的引用,您需要在联赛对象上调用适当的方法。在您的情况下,这将变为:

League1.removeFromTeams(team) //team 是需要从所需联赛中移除的 Team 对象

于 2012-08-14T09:12:11.347 回答