如何在hibernate中根据第四个表属性作为连接条件添加左连接多个表
我有四张桌子 A、 B、C、D 我要执行以下SQL查询:如何在hibernate中根据第四个表属性作为连接条件添加左连接多个表,hibernate,hql,Hibernate,Hql,我有四张桌子 A、 B、C、D 我要执行以下SQL查询: select * from A left join B on a.d = b.d left Join C on c.d = b.d 请建议如何实现我在A/B/C中为D绘制了映射 @Override @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "ID", nullable = false) public D getDObj() { return
select *
from A
left join B
on a.d = b.d
left Join C
on c.d = b.d
请建议如何实现我在A/B/C中为D绘制了映射
@Override
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ID", nullable = false)
public D getDObj() {
return DObj;
}
请建议。更新 我已经根据您的配置做了一些测试,这是对我有效的HQL查询:
select distinct a
from A a, B b, C c
where ((a.d=b.d) or (a.d is null) or (b.d is null))
and ((b.d=c.d) or (b.d is null) or (c.d is null))
它支持通过
D
进行连接,并且是左连接友好的。这与内部连接类似,但是如果没有找到匹配的记录,我希望B和C中的条目为空。我尝试了从a、B、C中选择a,其中((a.D=B.D)或(a为空))和((C.D=B.D)或(B为空)是否测试成功?