我可以使用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查询吗?
答案 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
。