我有 2 个具有 @OneToOne 关系的模型。比方说一个模型User
和一个模型Player
。每个用户都是玩家,每个玩家都是用户。
这是这两个模型的代码:
@Entity
public class User extends Model {
@Required
public String name;
@OneToOne(fetch = FetchType.EAGER)
public Player player;
}
@Entity
public class Player extends Model {
@Required
public String nickname;
@Required
public Gender gender;
}
我将始终Player
从 a访问 aUser
并且我希望当我加载用户时,他的 Player 也被加载(这就是我使用的原因fetch = FetchType.EAGER
)。
所以我希望(出于优化目的)当我User
加载Player
. 就像是 :
select u, p from User u join u.player p where u.player_id = p.id
但是当我查看查询计数和查询调试输出时,我可以看到执行了 2 个查询。就像是:
select u from User u
select p from Player p where p.id = ?
但这没有优化,我怎样才能让 JPA 执行加入请求来获取我的User
和它的Player
?
坦克你的帮助!
编辑:我正在使用 Play 框架 1.2.5