标题是明确的,所以这里是细节:我有两个表,A和B.B引用了A,但相反是不正确的。在SQL中,它并没有真正改变任何东西,但是在HQL中,我无法弄清楚该怎么做:
A 左连接 B 条件
我试过了:
A-左连接 B b 加入 b.A ba 与 a.id = ba.id
-> 查询语法异常:联接的预期路径!
-A 左连接 B B 与 a.id = b.A.id
-> 查询语法异常:联接的预期路径!
我没有收到路径异常,因为我总是给出别名。我想我正在做一些没有意义的事情,或者很可能是因为我需要做 A A 左加入 a.B,但我不能......(我尝试了B b RIGHT JOIN b.A.它有效,但当然结果不是我需要的)
我也尝试了没有 WITH 子句,因为条件在 FK 上,但没有更多的成功。
如果你有任何想法,请,我在听!
谢谢。
首先,要执行这样的临时连接,您至少需要 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