我有一個問題,我認爲應該很常見,但我找不到答案。hibernate @ManyToMany雙向渴望提取
我有2個對象:組和用戶。我的課是這個樣子:
class Group
{
@ManyToMany(fetch = FetchType.EAGER)
List<User> users;
}
class User
{
@ManyToMany(fetch = FetchType.EAGER)
List<Group> groups;
}
現在,當我嘗試從數據庫中獲取用戶它把它的所有組和所有組將其所有的用戶等。最後,我得到了一個stackoverflow例外。
我該如何解決這個問題,仍然有我的雙向關聯和到達列表中的對象的能力?
是的。同樣的事情發生。我可以理解,這是有道理的b/c休眠需要爲每個列表帶來所有列表對象,並且它是一個無限循環。我的問題是,如果有可能限制休眠帶來的對象的深度(類似fetch_max_depth,但對於多對多)。 – refaelos 2010-10-21 12:49:16
@Rafa實際上,我希望Hibernate能夠檢測週期並做適當的事情(但我沒有花時間來測試它)。另一方面,我不能說這種急切的加載多對多看起來是個好主意。 – 2010-10-21 13:02:49