0

これが私の状況です:

リーグと呼ばれるクラスとチームと呼ばれるクラスの間の関係1-N。

1つのリーグに複数のチームを含めることができます。ユニットテストでは、チームAをリーグ1に割り当て、同じチームAをリーグ2に割り当てようとしました。

何が起こるかというと、両方のリーグが同じチームAを参照しているということです。しかし、チームAはリーグ2のみを参照しています。

チームAへのリーグ1の参照を削除する最良の方法は何ですか?

編集:

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
4

1 に答える 1

2

永続性の仕事は、常に所有するドメインクラスに属します。

あなたの場合、リーグクラスは永続性に責任があります。つまり、それは所有クラスです。したがって、チームAへのリーグ1の参照を削除するには、リーグオブジェクトで適切なメソッドを呼び出す必要があります。あなたの場合、これは次のようになります。

League1.removeFromTeams(team)// teamは、必要なリーグから//削除する必要があるTeamオブジェクトです。

于 2012-08-14T09:12:11.347 に答える