繁体   English   中英

使用Hibernate防止无限循环数据检索

[英]Preventing infinite loop data retrieval with Hibernate

我在想:想象一个场景,例如

// POJO

public class User {

   private String userName;
   private String name;
   private String surname;
   private List<Blog> blogList;

   //All getters and setters are found here and assume they're generated.
}

public class Blog {
    private String title;
    private String content;
    private User author;
    private Date datePublished;
    private Date dateLastModified;

    //All getters and setters have been generated (by Eclipse or NetBeans)
}

想象一下,这些对象已正确映射到它们各自的Hibernate配置文件中。

我的问题:

如何在代码级别上用所有用户博客的列表检索用户? (即,不允许休眠状态自动为我填充blogList 。我想添加分页(即从列表5中检索20个列表),而且,如果您仔细考虑,这可能是一个无限循环,因为Blog具有一个User实体,有一个List<Blog>实体。

我该如何预防?

PS刚出于好奇,我将如何让Hibernate在配置侧填充我的blogList

提前致谢。

  • Hibernate会检测到这样的循环,并且不会让它们发生
  • 您可以使用fetch type = lazy( fetchType=FetchType.LAZY )来标记您的集合,以便在拥有对象fetchType=FetchType.LAZY不提取集合元素。
  • 您可以将QuerysetFirstResult(..)setMaxResults(..)使用以实现分页。 (然后删除集合)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM