我们有4个表,
一对一B |一个B到多个C |一个C到多个D
所有都配置了双向和懒人提取。
我已根据'B'创建了分离标准。并且急切地想要急切地,急切地,C.D急切地接受A。
如您所知,C是Set,D也是C中的Set。
我该怎么做?我尝试将fetchmode设置为EAGER。它没有用,我得到了LazyInitializationException。
请帮忙。
感谢。
答案 0 :(得分:1)
这会对你有帮助。
DetachedCriteria subCriteria = DetachedCriteria.forClass(A.class, "_A");
subCriteria.createAlias("_A.B", "_B");
subCriteria.createAlias("_B.C", "_C");
subCriteria.createAlias("_C.D", "_D");
subCriteria.add(Restrictions.eq("_D.id", 10));
subCriteria.setProjection(Projections.property("_D.id"));
criteria = subCriteria.getExecutableCriteria(session);
List list = criteria.list();