如何使用左外连接创建jpql

时间:2014-01-21 12:56:10

标签: java mysql java-ee jpa jpql

我有2个实体。
实体(Mysql表名=“A”)
B实体(Mysql表名=“B”)
我想从A表中获取数据,它不在B表中 我写了sql并且它正在工作。
     SELECT * FROM A.       LEFT OUTER JOIN B            ON A.id = B.a_id      WHERE B.id IS null

如何用JPQL实现它?

4 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我相信以下内容应该有效:

SELECT A FROM A a LEFT JOIN a.B b WHERE b.id = null;

这应该在A上与B一起加入A,留下空,其中A与B不匹配。然后它从A中选择行,其中b.id为null。看起来像你在寻找什么。还要检查以下SO:How to make a JPA query with LEFT OUTER JOIN 如下所述:How to create a JPA query with LEFT OUTER JOIN

让我知道它是否成功了。

答案 2 :(得分:0)

您可以使用此命令

SELECT * FROM A WHERE A.id NOT IN(SELECT B.id FROM B)

如果您只想使用加入,请告诉我

答案 3 :(得分:0)

如果您有某种以下结构:

Class EntityA
--------
long Id
Set<EntityB> Bs

Class EntityB
-------
long Id
EntityA A

我认为以下应该有效

SELECT a FROM EntityA a WHERE a.Bs IS EMPTY