2013-12-09 71 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知道伪实体。