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
Java Hibernate:使用子选择和左外部联接执行条件查询?_Java_Hibernate_Join_Criteria_Left Join - Fatal编程技术网

Java Hibernate:使用子选择和左外部联接执行条件查询?

Java Hibernate:使用子选择和左外部联接执行条件查询?,java,hibernate,join,criteria,left-join,Java,Hibernate,Join,Criteria,Left Join,我可以使用子选择和左外部联接执行条件查询吗 例如,我有一个1-多B 1-多C 使用Criteria.createAlias(“b”、“b”、Criteria.LEFT_JOIN)我可以执行左外部连接 使用Criteria.setFetchMode(“b”,org.hibernate.FetchMode.DEFAULT),我可以使用默认的抓取策略执行连接。我假设在A.B和B.C中都设置了@org.hibernate.annotations.FetchMode.SUBSELECT就足够了(是吗?)

我可以使用子选择和左外部联接执行条件查询吗

例如,我有一个1-多B 1-多C

使用Criteria.createAlias(“b”、“b”、Criteria.LEFT_JOIN)我可以执行左外部连接

使用Criteria.setFetchMode(“b”,org.hibernate.FetchMode.DEFAULT),我可以使用默认的抓取策略执行连接。我假设在A.B和B.C中都设置了@org.hibernate.annotations.FetchMode.SUBSELECT就足够了(是吗?)

问题1:为什么org.hibernate.FetchMode没有SUBSELECT选项,而org.hibernate.annotations有SUBSELECT选项


问题2:我可以使用Sub-Select和Left-Outer联接执行条件查询吗?

org.hibernate.FetchMode
在不同的名称下具有相同的选项。

条件和
org.hibernate.FetchMode.Select
不执行任何操作。条件的唯一选项是
org.hibernate.FetchMode.JOIN
。我手动对条件结果执行惰性初始化:

for (Entity e : result) {
 Hibernate.initizalize(e.getProperty());
}

左外部联接(a->b)的结果不是与左外部联接(a->b->c)相同吗?