Hibernate:使用Sub-Select AND Left-Outer join执行条件查询?

时间:2010-04-16 16:54:23

标签: java hibernate join criteria left-join

我可以使用Sub-Select AND Left-Outer join执行Criteria查询吗?

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

使用Criteria.createAlias(“b”,“b”,Criteria.LEFT_JOIN)我可以执行左外部加入。

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

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

问题2:我可以使用Sub-Select AND Left-Outer join执行Criteria查询吗?

2 个答案:

答案 0 :(得分:2)

标准和org.hibernate.FetchMode.SELECT什么也没做。 Criteria的唯一选择是org.hibernate.FetchMode.JOIN。我手动对Criteria结果进行延迟初始化:

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

答案 1 :(得分:0)

org.hibernate.FetchMode具有相同的选项,名称不同SELECT