2009-09-15 82 views
2

我在定義與域類的一對一和一對多關係時遇到了問題。 我有以下域類hasMany和hasOne在Grails中如何工作?

class Team { 
    static hasMany = [players: Player] 
    static hasOne = [coach: Coach] 
} 

class Person { 
    String name 
} 

class Player extends Person { 
} 

class Coach extends Person { 
} 

所以我的問題是:

1 - 我需要在球員和教練在聲明變量team

2-我還需要申報belongsTo嗎?

3-考慮上述類,是否最好使用hasOne?

謝謝。

回答

1
  1. 只有當你希望能夠輕鬆地通過player.team導航和coach.team
  2. 取決於你是否要更新/刪除級聯。我想不是,因爲刪除教練或球員不應該刪除球隊,反之亦然?
  3. hasOne看起來對團隊>教練關係有意義,但它在Grails 1.1.1或更低版本中不存在。它可能在1.2(但它不在參考指南)。

歡呼

2

沒有與leebutt的答案稍有不慎。

  1. 級聯反過來說:如果你的教練/球員有belongsTo設置爲Team,那麼刪除球隊將會級聯並刪除教練/球員。