Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在hibernate中根据第四个表属性作为连接条件添加左连接多个表_Hibernate_Hql - Fatal编程技术网

如何在hibernate中根据第四个表属性作为连接条件添加左连接多个表

如何在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

我有四张桌子

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 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为空)是否测试成功?