我有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实现它?
答案 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