我有两个实体:
User
:id: long ,name: String Player
:id: long ,所有者:用户,指向: int 现在我想在一个JPQL查询中选择一个用户及其关联的Player。在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
)。
我该如何解决这个问题?
答案 0 :(得分:3)
您的关系从Player
到User
,因此您可以将联接转换为跟随它:
SELECT u, p FROM Player p RIGHT JOIN p.owner u WHERE ...