我需要将我的 hibernate 映射的获取模式设置为在某些情况下是急切的,而在其他情况下是惰性的。我的默认值(通过 hbm 文件设置)为 lazy="true"。如何在代码中覆盖此设置? MyClass 有一个类型为 MyClass2 的集合,我想将其 FetchMode 设置为 EAGER。
目前,我有类似的东西:
Session s = HibernateUtil.getSessionFactory().openSession();
MyClass c = (MyClass)session.get(MyClass.class, myClassID);
最佳答案
你可以尝试这样的事情:(代码脱离我的头脑)
Criteria crit = session.createCriteria(MyClass.class);
crit.add(Restrictions.eq("id", myClassId));
crit.setFetchMode("myProperty", FetchMode.EAGER);
MyClass myThingy = (MyClass)crit.uniqueResult();
不过,我认为应该使用 FetchMode.JOIN 或 FetchMode.SELECT 而不是 FetchMode.EAGER。
关于java - 在 native Hibernate 中设置 FetchMode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/243409/