我知道这可以通过 HQL 查询轻松解决,但是我更喜欢让 Hibernate 使用一些 OneToMany 属性来处理这个问题。
让我演示一下我希望我的域模型在伪代码中的样子:
Game
Long GameID
Team HomeTeam
Team AwayTeam
@OneToMany(mappedBy="team")
Set<TeamPlay> HomeTeamPlays
@OneToMany(mappedBy="team")
Set<TeamPlay> AwayTeamPlays
表结构类似,Game 表上有两个外键都指向 Team 表。显然,如果只有一个外键,那么它将代表真正的一对多关系,但实际上我想要的是同一实体子类型的两个双向一对多属性。
我不相信使用 @Where 注释会起作用,因为它需要一个常量,并且这里不允许使用 @JoinColumn。如果不可能,那没关系,我只是想从别人那里得到它。