加载延迟获取的实体

时间:2015-12-15 13:49:22

标签: hibernate lazy-loading

我有一个hibernate条件,它使用延迟提取加载TypeAbsence(我的实体)列表。在我的一个方法中,我需要急切地加载它,因为它是通过json发送的,当对象是惰性初始化时,json为null。

我试过了:

  for(TypeAbsence typeAbsence: toReturn){
        Hibernate.initialize(typeAbsence.getDesignation());
  }

但这不起作用,当我使用intellij调试并打开toReturn列表时,对象仍然是懒惰的初始化:s

有没有办法在我们从标准中获得列表后急切地加载类型缺席?

这是代码

 toReturn = typeAbsenceCriteria.getResultList();

 /* Here I want to reload the lazy loaded objects in toReturn in a eager way and then return the list through json */

谢谢!

1 个答案:

答案 0 :(得分:0)

使用Criteria Query API,您可以使用setFetchMode

指定获取模式

示例:

 List<Cat> cats = session.createCriteria(Cat.class)
    .add( Restrictions.like("name", "Kitty%") )
    .setFetchMode("mate", FetchMode.LAZY)
    .setFetchMode("kittens", FetchMode.EAGER)
    .list();

希望这有帮助。