我需要将休眠映射的获取模式设置为在某些情况下急切,而在其他情况下懒惰。我的默认值(通过 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 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)