これはHQLクエリで簡単に解決できることは知っていますが、いくつかのOneToManyプロパティを使用してHibernateにこれを処理させることを好みました。
ドメインモデルを擬似コードでどのように表示するかを示します。
Game
Long GameID
Team HomeTeam
Team AwayTeam
@OneToMany(mappedBy="team")
Set<TeamPlay> HomeTeamPlays
@OneToMany(mappedBy="team")
Set<TeamPlay> AwayTeamPlays
テーブル構造は似ており、ゲームテーブルのチームテーブルを指す2つの外部キーがあります。明らかに、外部キーが1つしかない場合、それは真の1対多の関係を表しますが、実際には、同じエンティティの子タイプに対する2つの双方向の1対多のプロパティが必要です。
@Whereアノテーションを使用すると定数が必要になるため、機能するとは思われません。@JoinColumnはここでは許可されていません。それが不可能な場合、それは大丈夫です、私は他の誰かからそれをここにしたかっただけです。