Java Hibernate:使用子选择和左外部联接执行条件查询?
我可以使用子选择和左外部联接执行条件查询吗 例如,我有一个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选项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就足够了(是吗?)
问题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)相同吗?