我有两个实体:
用户
: id:long, name:String玩家
:id:long,所有者:用户,点数:int
现在我想在一个 JPQL 查询中选择一个用户及其关联的玩家。在 SQL 中,我会这样做:
SELECT u.*, p.* FROM User u
LEFT JOIN Player p ON (p.owner_id = u.id)
WHERE u.name = ...
我的第一直觉是在 JPQL 中这样做
SELECT u, p FROM User u LEFT JOIN Player p ON (p.owner = u) WHERE u.name = ...
但我认为 JPQL 不支持 ON
子句。但是我确实需要它,因为 User
没有对 Player
的引用(Player
以外的许多东西都可以附加到 User
)。
我该如何解决这个问题?
最佳答案
你有一个从 Player
到 User
的关系,所以你可以反转连接来跟随它:
SELECT u, p FROM Player p RIGHT JOIN p.owner u WHERE ...
关于java - JPQL 中的 LEFT JOIN ON(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4992834/