繁体   English   中英

在JPQL中LEFT JOIN ON()

[英]LEFT JOIN ON() in JPQL

我有两个实体:

  • User :id: long ,name: String
  • Player :id: long ,owner: User ,points: 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 )。 我怎么解决这个?

您有一个从PlayerUser的关系,因此您可以反转联接以遵循它:

SELECT u, p FROM Player p RIGHT JOIN p.owner u WHERE ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM