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

  显示原文与译文双语对照的内容
147 2

我想知道:想象一下 e.g.的场景

//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 配置文件中。

我的问题:

如何使用代码级别上所有用户博客的列表来检索我的用户?( 例如,不允许 Hibernate 自动为我填充 blogList ) 。我想添加分页( 例如 。从列表 5中,检索 20列表,如果你认真考虑,这可以能是一个无限循环,User 实体有 List<Blog> 实体。

我如何阻止这个?

我将如何让 Hibernate 填充配置端上的blogList

先谢谢了。

时间:原作者:0个回答

58 5
  • Hibernate 检测到这样的循环,不会让它们发生
  • 你可以使用获取 type=lazy ( fetchType=FetchType.LAZY ) 标记 Collection,以便在拥有对象时不获取 Collection 元素。
  • 你可以使用 QuerysetFirstResult(..)setMaxResults(..) 来实现分页。( 然后去掉 Collection )
原作者:
...