我見過這個問題問了很多,我知道它爲什麼會發生,我只是有問題試圖解決它在我的具體情況。「未能在Hibernate中懶洋洋地初始化一個角色集合」
我正在從使用XML文件將Hibernate的數據庫表映射到使用Hibernate註釋的項目轉換項目。只要我使用基本的Java類型(原語或基類的類版本,例如int或Integer),一切都會順利。但是當談到我的班級有另一個班級的成員時,事情就會向南。
一種類型的問題是當我有OnetoMany關係。
在foo的XML文件是這樣說:
<set inverse="true" name="barList">
<key>
<column name="foo_id"/>
</key>
<one-to-many class="com.me.model.dao.Bar" />
</set>
在轉換這一個註釋,我結束了這一點:
@OneToMany
@JoinTable(name = "bar", inverseJoinColumns = @JoinColumn(name = "foo_id"))
public Set<Bar> getBarList() {
return barList;
}
我試過這個其他變化(包括有一個JoinColumn),我知道它的立場可能是不完整的,但正如我所說,我無法找到一個適當的解決方案,擺脫懶惰的初始異常,當我在視圖中的對象工作我的MVC。據說FetchType.EAGER是一種解決方法,而不是解決方案,但奇怪的是,解決方案並未提供。也許需要更多的信息。
- 我的MVC是Wicket 1.4.17。
- 我的應用程序服務器是Widlfly(即沒有web.xml中)
- Java版本是8
- 休眠,基於Maven POM
- 神器:冬眠
- 版本:3.5.0.ga
- 神器:EJB3持久性
- 版本:1.0.1.GA
編輯:當barList出現在foo類中時,可能會有所幫助,但是在數據庫中沒有任何類型的參考可以在foo中禁止。 foo表有一個bar_id。
假設你想做雙向一對多和多對一的雙向?!我們可以只使用註解嗎?! –
它們已經在XML中雙向映射,但我試圖一次將一個類轉換爲註釋。這些類中的很多類與複雜對象之間的關係非常複雜,所以我試圖一點點地跟蹤和修復錯誤。暫時的混合XML /註釋似乎對於更簡單的關係而言是可以接受的 - 在雙向映射之前,我可以使用一個類來工作,並且可以開始轉換另一個類。 – sorinev
您必須發佈關於會話/事務處理的內容。也許問題在於,只要您從存儲庫獲取實體,會話就會執行延遲加載。 (在spring-webflow中存在這個問題,忘記了標籤) –
Turo