3 回答

TA貢獻1824條經(jīng)驗 獲得超5個贊
問題是您試圖訪問分離對象中的集合。您需要在訪問當前會話的集合之前重新附加對象。您可以通過
session.update(object);
使用lazy=false不是一個好的解決方案,因為您將放棄休眠的惰性初始化功能。如果為lazy=false,則在請求對象的同時將集合加載到內(nèi)存中。這意味著,如果我們有一個包含1000個項目的集合,則無論我們是否要訪問它們,它們都將被加載到內(nèi)存中。這不好。
請閱讀本文,其中解釋了問題,可能的解決方案以及為什么以這種方式實現(xiàn)。

TA貢獻1712條經(jīng)驗 獲得超3個贊
這通常意味著擁有的Hibernate會話已經(jīng)關閉。您可以執(zhí)行以下任一操作來修復它:
使用哪個對象創(chuàng)建此問題,請使用 HibernateTemplate.initialize(object name)
使用lazy=false您的HBM文件。

TA貢獻1877條經(jīng)驗 獲得超6個贊
如果您將休眠與JPA注釋一起使用,則這將很有用。在您的服務類中,應該使用@PersistenceContext為實體管理器設置一個設置器。將其更改為@PersistenceContext(type = PersistenceContextType.EXTENDED)。然后,您可以在任何地方訪問惰性屬性。
添加回答
舉報