【问题标题】:JPQL Entity1 join Entity2 where Entity1 is mapped in Entity2 but not the other way roundJPQL Entity1 加入 Entity2,其中 Entity1 映射到 Entity2 但不是相反
【发布时间】:2017-04-22 13:05:57
【问题描述】:

如果我有两个实体 Entity1 和 Entity2 映射在两侧(或至少 Entity2 映射到 Entity1)我可以做

select e1 from Entity1 e1
left join e1.entity2 e2
where e2.id is null

如果我没有e1.entity2 而只有Entity2.entity1,是否有对应的?

【问题讨论】:

  • 你的意思是“SELECT e1 FROM Entity2 e2 JOIN e2.entity1 e1 WHERE ...”

标签: java sql hibernate jpa jpql


【解决方案1】:

我会亲自将您的桌子换成另一种方式。可以选择使用RIGHT JOIN,但如果我在代码审查期间看到RIGHT JOIN,任何代码都会失败;

SELECT *
FROM Entity2 e2
LEFT JOIN Entity1 e1
    ON e2.IdField = e1.IdField
WHERE e1.IdField IS NULL

另外,您似乎缺少加入条件,最好声明这些

【讨论】:

  • 关于您的代码 sn-p:我需要 Entity1 的结果,而不是 Entity2,如果我使用您的 snipped 查询那些我总是得到零结果,不是吗?
  • @JacobS 这与您发布的原始代码 sn-p 是相反的吗?尝试将带有 ON 语句的行添加到您的原始查询中,看看您是否得到了您想要的结果。
猜你喜欢
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多