Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在本机Hibernate中设置FetchMode_Java_Hibernate - Fatal编程技术网

Java 在本机Hibernate中设置FetchMode

Java 在本机Hibernate中设置FetchMode,java,hibernate,Java,Hibernate,我需要在我的hibernate映射上设置fetch模式,在某些情况下是急切的,在另一些情况下是懒惰的。我的默认设置(通过hbm文件设置)为lazy=“true”。如何在代码中重写此设置?MyClass有一个定义为MyClass2类型的集合,我想将其FetchMode设置为Earner 目前,我有一些类似于: Session s = HibernateUtil.getSessionFactory().openSession(); MyClass c = (MyClass)session.get(M

我需要在我的hibernate映射上设置fetch模式,在某些情况下是急切的,在另一些情况下是懒惰的。我的默认设置(通过hbm文件设置)为lazy=“true”。如何在代码中重写此设置?MyClass有一个定义为MyClass2类型的集合,我想将其FetchMode设置为Earner

目前,我有一些类似于:

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

你可以试试这样的东西:(我头顶上的代码)


我认为应该使用FetchMode.JOIN或FetchMode.SELECT而不是FetchMode.EAGER。

Hibernate
主类中有一个静态
initialize(Object)
方法。您可以使用它强制加载您的收藏:

MyClass c = (MyClass)session.get(MyClass.class, myClassID);
Hibernate.initialize(c.getMySetOfMyClass2());

然而,延迟抓取的默认值就是:默认值。您可能希望覆盖特定集合映射中的惰性。

如果您不使用条件,还有
JOIN-FETCH
关键字,它将急切地加载JOIN指定的关联

session.createQuery("select p from Parent p join fetch p.children c")
session.createQuery("select p from Parent p join fetch p.children c")