簡體   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