最近開發項目比較忙,Spring Cloud的筆記得稍稍放放了,下午出來個bug,噁心的不行,功能很簡單,也沒有什麼級聯或複雜的映射關係,就是一直在報三個異常html
Caused by: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.shunneng.core.web.rest.util.Result["data"]->com.shunneng.flup.web.rest.dto.SaveFlupDTO["flupForm"]->com.shunneng.flup.domain.FlupForm_$$_jvst158_3["handler"])
2018-05-14 16:54:44,571 ERROR XNIO-2 task-3 c.s.c.w.r.e.ExceptionTranslator:159 - JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain:
org.hibernate.lazyinitializationexception could not initialize proxy - no session
這些異常是最後的這個異常致使的,網上找了不少,都說是jpa或hibernate的延遲加載
搞的鬼,解決方法無非就是幾種,分別貼出與各位分享之java
LazyInitialization
, 將fetch
設成eager
,能夠在配置文件,也可註解spring boot
的配置文件application.properties
添加spring.jpa.open-in-view=true
,yml同理spring boot
的配置文件application.properties
添加spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
上述幾種,由於用的是springboot項目,只能用註解比較方便,都沒有成功,就不詳寫了。介紹下面的方法,我是在一個國外網站找到的web
@Proxy(lazy = false)
這裏copy下機翻,英語好的能夠直接移步文章出處有狀況,當咱們想要一個簡單的解決方案時,並不關心性能方面的任何事情,例如爲了測試或原型設計的目的。在這種狀況下,您能夠在應用程序中進行如下配置更改以免此錯誤,但請記住,若是此代碼進入生產環境,則預先初始化可能致使的影響。spring
若是您使用XML配置:將
default-lazy =「false」
添加到您的 元件
若是您使用註釋配置:將@Proxy(lazy = false)
添加到全部實體類。springboot這就是如何修復線程「main」中的異常
org.hibernate.LazyInitializationException:沒法初始化代理 - 沒有會話
。咱們已經看到,這個錯誤主要出如今關閉鏈接並嘗試訪問未徹底初始化的代理對象時。因爲代理對象須要鏈接,所以能夠將對象從新鏈接到會話,或者當心避免編寫代碼,這些代碼訪問未初始化的代理對象。session避免
LazyInitializationException
的另外一種方法是經過使用lazy =「false」
來禁用實體類的hibernate的懶惰初始化功能或者使用default-lazy =「false」
徹底禁用它。app因爲性能緣由,此解決方案不推薦用於生產用途,但可用於原型設計,測試和演示。當你從Hibernate 2.1升級到3.0時,若是你第一次看到這個錯誤,不要感到驚訝,由於這是Hibernate默認啓用延遲初始化時的版本。若是您在任何其餘場景中遇到此錯誤或嘗試解決
「org.hibernate.LazyInitializationException:沒法初始化代理 - 無會話」
,您也能夠在此處發佈錯誤和代碼,咱們能夠一塊兒看看。dom
引用文章:Dealing with org.hibernate.LazyInitializationException: could not initialize proxy - no Session in Hibernate Javaspring-boot
2018-05-29 最新更新,有時候還有種出現這種問題的多是,findOne方法等寫成了getOne等……性能
本文僅做記錄,寫文幫助更多人,轉載還望註明出處http://www.cnblogs.com/hellxz/p/9037597.html