我有例如2個實體。
實體(Mysql Table name =「A」)
B實體(Mysql Table name =「B」)
我想要從A表中取數據,它不在B表中。
我寫了SQL,它工作。
SELECT * FROM一個 LEFT OUTER JOIN B ON A.id = B.a_id WHERE B.id IS NULL如何用左外連接創建jpql
如何使用JPQL意識到這一點?
我有例如2個實體。
實體(Mysql Table name =「A」)
B實體(Mysql Table name =「B」)
我想要從A表中取數據,它不在B表中。
我寫了SQL,它工作。
SELECT * FROM一個 LEFT OUTER JOIN B ON A.id = B.a_id WHERE B.id IS NULL如何用左外連接創建jpql
如何使用JPQL意識到這一點?
如果你有某種以下結構:
Class EntityA
--------
long Id
Set<EntityB> Bs
Class EntityB
-------
long Id
EntityA A
我認爲以下應工作
SELECT a FROM EntityA a WHERE a.Bs IS EMPTY
我相信下面應該工作:
SELECT A FROM A a LEFT JOIN a.B b WHERE b.id = null;
這應該對ID連接A爲B留下空,其中A CAN不匹配B.然後它從b中選擇行,其中b.id爲空。看起來像你在找什麼。同時結帳以下SOs:How to make a JPA query with LEFT OUTER JOIN 並如下所示:How to create a JPA query with LEFT OUTER JOIN
讓我知道它是否成真。
沒有它沒有工作。JPA – ElvinAliyev
中沒有「ON」運算符那麼JPA 2.1中有一個ON運算符(但不是早期版本),但沒有「SELECT *」 – DataNucleus
你可以使用這個命令
SELECT * FROM A,其中A.id NOT IN(SELECT B.id FROM B)
如果婉只用加盟讓我知道
這是查詢是不正確的。因爲他給我所有來自A表的數據,但是我需要來自A表中的數據,它不在B表中 – ElvinAliyev
該查詢給出了所有來自'A'的ID,其中ID不在'B'中。這不是你想要的嗎? –
嗨!我正在使用php mysql你可以修改這個查詢到你的平臺 –
不確定你在這裏問什麼。你是否要求Java中需要的整個設置來獲取和存儲結果到對象中?或者如何將該查詢翻譯成可以從實體管理器運行的內容?如果第二個點乍一看,它看起來很好。 –
是的,我想翻譯它是JPQL,可以從一個實體經理運行。 – ElvinAliyev
然後我沒有看到任何問題的查詢。你試過了嗎? –