2013-12-09 65 views
5

我有2表 /實體與沒有關聯。 我可以去交叉連接在JPAJPA - 左連接2表沒有關聯

FROM A as a, B as b WHERE b.col1=a.col1 

我怎麼能執行一個左加入?

我想從A的所有值,並填寫他們與B值在可能的情況,並留下空當沒有B.

不起作用:

FROM A as a LEFT JOIN B as b WHERE b.col1=a.col1 

路徑預計加入!

無效的路徑:「b.col1」

回答

-3

這是可能的JPA與下面的查詢:

FROM A as a, B as b WHERE b.col1=a.col1 OR b.col1 IS NULL 
+1

這是不一樣的一個LEFT JOIN。假設你有b.col1 = 3並且沒有a.col1 = 3。你的查詢不會返回這一行,但是一個LEFT JOIN將返回它。 –

4

你不能這樣做,在JPA,只要有實體之間沒有任何關係。

解決方案:

  1. 使用本機查詢。
  2. 在它們之間添加一個關係(最終是一個間接的惰性關係)。對於間接我的意思是: A知道僞實體, PseudoEntity知道B(但關係所有者是實體B), B知道僞實體。