当前位置:  开发笔记 > 编程语言 > 正文

在本机Hibernate中设置FetchMode

如何解决《在本机Hibernate中设置FetchMode》经验,为你挑选了1个好方法。

我需要在我的hibernate映射上设置fetch模式在某些情况下是急切的,在其他情况下是懒惰的.我的默认值(通过hbm文件设置)为lazy ="true".如何在代码中覆盖此设置?MyClass有一个MyClass2类型的集合,我想将FetchMode设置为EAGER.

目前,我有类似的东西:

Session s = HibernateUtil.getSessionFactory().openSession();
MyClass c = (MyClass)session.get(MyClass.class, myClassID);

Mat Mannion.. 5

你可以尝试这样的事情:(代码离我头顶)

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.



1> Mat Mannion..:

你可以尝试这样的事情:(代码离我头顶)

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.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有