2013-10-02 64 views
0

我有一個相當簡單的模型與兩個對象:團隊和遊戲。 Team對象具有團隊的名稱,並且Game對象查找兩次Team對象。一個通過「away_team_id」,另一個通過「home_team_id」字段。ActiveJDBC對象與多個父母引用相同的類

Game ----home_team_id----> Team 
    | 
    +------away_team_id----> Team 

我對ActiveJDBC相當陌生,但已使用PHP ActiveRecord相當長一段時間。我不能爲我的生活弄清楚如何通過Game對象引用每個團隊。我在我的遊戲對象有這些註釋:

@BelongsToParents({ 
@BelongsTo(foreignKeyName="home_team_id",parent=Team.class), 
@BelongsTo(foreignKeyName="away_team_id",parent=Team.class) 
}) 

public class Game extends Model { 
} 

在我的測試代碼,我有:

Team homeTeam = game.parent (Team.class); 

但很明顯,這只是其中之一,我甚至不能確定它是如何人物哪一個是它!任何幫助將不勝感激。

在此先感謝!

回答

1

這是一個不尋常的案例。我建議是這樣的:

public class Game extends Model{ 
    public Team getHomeTeam(){ 
    return Team.findFirst("id = ?", get("home_team_id")); 
    } 
    public Team getAwayTeam(){ 
    return Team.findFirst("id = ?", get("home_away_id")); 
    } 
} 

我建議在語義方法,像這樣的包裝ActiveJDBC幫助潛在重構的未來。

tx

+0

Okie dokie。我真的「認爲」我的模型是實現我想要做的最好的方式。我能夠使用PHP Active Record輕鬆工作,但是當我嘗試使用Java時,那就是當我遇到問題時。 – Dave

+0

這不是一個「不尋常的情況」。語義方法是有意義的,但是你失去了熱切的加載特性。有可能使include()方法指定你所包含的「字段」? – mppfiles

+0

我的意思是,parent()或include()方法應該指定所需的「字段」,而不僅僅是類名稱。 – mppfiles