簡體   English   中英

Hibernate 5延遲加載問題

[英]Hibernate 5 Lazy Loading Issue

我有一類User,它具有一個項目列表(集合):

@OneToMany(mappedBy = "user_owner_id")
private Collection<Project> project = new ArrayList<>();

在某個時候,我想查看項目列表並提取它們:

Session sessionF = sessionFactory.openSession();
sessionF.beginTransaction();        
user = sessionF.get(User.class, user.getId());
sessionF.getTransaction().commit();
List<Project> projects = (List<Project>) user.getProject();     
sessionF.close();

如果我不對projects做任何事情,則會引發錯誤: org.hibernate.LazyInitializationException: could not initialize proxy – no Session

但是如果我添加一個int projectCount = projects.size(); 它工作正常。 為什么會發生這種情況?如何在不projects此處projects情況下解決該問題?

PS:關閉會話后,我將其傳遞給HttpServletRequest ,然后在jsp文件中對其進行for循環。

Hibernate參考文檔的“檢查訪存策略”部分

延遲集合獲取-當應用程序對該集合調用操作時,將獲取集合。 (這是集合的默認設置。)

從實體返回集合並將其分配給變量不涉及在該集合上調用方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM