如果框架使用了json序列化對象,當配置了hibernate懶加載時,可能會拋出異常,或者出現N+1的問題,或者出現無限循環的問題。網上很多解決方案,
基本是這些:@JsonIgnore忽略可能出問題的屬性,懶加載改為FetchType.EAGER,亦或者配置org.springframework.orm.hibernate3.support.OpenSessionInViewFilter等等。
先說說忽略屬性:設置了忽略屬性雖然能解決問題,但是當我們下次想使用該屬性時卻無法獲取了,所以解決不了問題。
改為即時加載:冗余,當我們不需要這個屬性的時候仍然會訪問庫查詢,並且可能冗余不僅僅是一條記錄。增加了數據庫和網絡傳輸開銷。
我目前是這樣解決的:
項目使用jackson,利用@jsonInclude屬性忽略null對象,然后代碼中把這個字段置空,這樣json就不會去序列化這個字段了。
一直尋找好的解決方法,暫未找到,望路過大神指點一二。