/ / ActiveJDBC Об'єкт з декількома батьками, які посилаються на один клас - activejdbc

Об'єкт ActiveJDBC з кількома батьками, які посилаються на один і той же клас - activejdbc

У мене досить проста модель з двома об'єктами: Команда та гра. Об'єкт Team має ім'я команди, а Ігровий об’єкт шукає об'єкт Team двічі. Один через "away_team_id" і один через поле "home_team_id".

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

Я досить новачок у ActiveJDBC, але використовував PHPActiveRecord досить тривалий час. Я не можу за все життя зрозуміти, як посилатися на кожну команду через об’єкт Ігри. У мене в об’єкті гри є такі примітки:

@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 для відповіді № 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