标题是明确的,所以这里是细节:我有两个表,A和B. B有A的引用,但反过来不是真的。在SQL中它并没有真正改变任何东西,但在HQL中我无法弄清楚如何做:
LEFT JOIN B 开启 条件
我试过了:
a LEFT JOIN B b 加入 b.A ba WITH a.id = ba.id
- > QuerySyntaxException:连接所需的路径!
a LEFT JOIN B b WITH a.id = b.A.id
- > QuerySyntaxException:连接所需的路径!
我没有得到路径异常,因为我总是给别名。我想我做的事情没有意义,或者很可能是因为我需要做 A LEFT JOIN aB ,但我不能...... (我试过 B b RIGHT JOIN bA 。它有效但当然结果不是我需要的)
我也尝试过没有WITH子句,因为条件在 FK 上,但没有更多成功。
如果您有任何想法,请,我正在听!
谢谢。
答案 0 :(得分:0)
首先,要进行此类临时连接,至少需要Hibernate 5.1。 JPA仍然不支持这类事情。
尝试使用此查询
class A {
@Id
private Long pid;
}
class B {
@Id
private Long pid;
@OneToOne
@JoinColumn
private A refToA;
}
from A a left join B b on a.pid = b.refToA.pid