欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JPA延遲加載no Session報(bào)錯(cuò)解決分析

 更新時(shí)間:2023年09月11日 14:49:31   作者:土豆肉絲蓋澆飯  
這篇文章主要為大家介紹了JPA延遲加載no Session報(bào)錯(cuò)解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

異常展示

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ****, could not initialize proxy - no Session
    at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:582)
    at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:201)
    at org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:145)
    at org.hibernate.collection.internal.PersistentBag.size(PersistentBag.java:261)

問(wèn)題原因

觸發(fā)延遲加載的時(shí)候,session已經(jīng)失效

延遲加載原理

通過(guò)cglib對(duì)目標(biāo)Entity實(shí)現(xiàn)代理,針對(duì)配置了延遲加載的屬性,修改對(duì)應(yīng)get方法的邏輯,植入延遲加載邏輯

解決方式

  • 不使用延遲加載
  • 延遲加載的時(shí)候session活躍

我們本來(lái)就想使用延遲加載來(lái)提高性能的,不使用延遲加載只是你逃避問(wèn)題的方式??!要用延遲加載的地方必須用它!!

如何讓延遲加載時(shí)session活躍

web項(xiàng)目

在springboot環(huán)境下,打開(kāi)以下配置即可

spring.jpa.open-in-view=true

這個(gè)配置會(huì)通過(guò)WebMvcConfigurer配置一個(gè)OpenEntityManagerInViewInterceptor攔截器

而這個(gè)攔截器的作用。。我們看他的注釋就知道了

就是處理請(qǐng)求的全程都能獲取到EntityManager,其實(shí)就是能獲取到session的意思。

普通提供dubbo服務(wù)的項(xiàng)目

在接口方法上加上@Transactional注解即可。

@Override
@Transactional(rollbackFor = Exception.class)
public List<XXDTO> getAllXX() {
    List<XXEntity> result = xXQueryRepository.findAll();
    return XXConverter.INSTANCE.entityListToDTOList(result);
}

@Transactional會(huì)保證在所注解方法作用域內(nèi)session都生效

以上就是JPA延遲加載no Session報(bào)錯(cuò)解決分析的詳細(xì)內(nèi)容,更多關(guān)于JPA延遲加載no Session報(bào)錯(cuò)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談Mybatis通用Mapper使用方法

    淺談Mybatis通用Mapper使用方法

    本篇文章主要介紹了淺談Mybatis通用Mapper使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Spring MVC 使用支付寶接口完成在線支付的示例代碼

    Spring MVC 使用支付寶接口完成在線支付的示例代碼

    本篇文章主要介紹了Spring MVC 使用支付寶接口完成在線支付的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • 基于SpringBoot制作一個(gè)PDF切圖小工具

    基于SpringBoot制作一個(gè)PDF切圖小工具

    這篇文章主要為大家詳細(xì)介紹了如何基于SpringBoot制作一個(gè)PDF切圖小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Maven插件之Dependency:analyze的使用

    Maven插件之Dependency:analyze的使用

    在軟件開(kāi)發(fā)中,合理管理項(xiàng)目依賴是保證構(gòu)建穩(wěn)定性的關(guān)鍵,Maven作為流行的項(xiàng)目管理工具,提供了Dependency插件來(lái)幫助開(kāi)發(fā)者分析和優(yōu)化項(xiàng)目依賴,通過(guò)執(zhí)行dependency:analyze指令,可以辨識(shí)項(xiàng)目中使用的、未聲明的、和未使用的依賴項(xiàng)
    2024-10-10
  • java類的加載過(guò)程以及類加載器的分析

    java類的加載過(guò)程以及類加載器的分析

    這篇文章給大家詳細(xì)講述了java類的加載過(guò)程以及類加載器的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友可以學(xué)習(xí)下。
    2018-08-08
  • java MyBatis攔截器Inteceptor詳細(xì)介紹

    java MyBatis攔截器Inteceptor詳細(xì)介紹

    這篇文章主要介紹了java MyBatis攔截器Inteceptor詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 帶你入門Java的泛型

    帶你入門Java的泛型

    這篇文章主要給大家介紹了關(guān)于Java中泛型使用的簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • SpringBoot項(xiàng)目運(yùn)行一段時(shí)間后自動(dòng)關(guān)閉的坑及解決

    SpringBoot項(xiàng)目運(yùn)行一段時(shí)間后自動(dòng)關(guān)閉的坑及解決

    這篇文章主要介紹了SpringBoot項(xiàng)目運(yùn)行一段時(shí)間后自動(dòng)關(guān)閉的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • java中Integer包裝類裝箱的一個(gè)細(xì)節(jié)詳解

    java中Integer包裝類裝箱的一個(gè)細(xì)節(jié)詳解

    Java中的Integer是int的包裝類型,下面這篇文章主要給大家介紹了關(guān)于java中Integer包裝類裝箱的一個(gè)細(xì)節(jié)的相關(guān)資料,文中介紹的這個(gè)細(xì)節(jié)挺重要的,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧
    2018-07-07
  • 值得分享的超全文件工具類FileUtil

    值得分享的超全文件工具類FileUtil

    這篇文章主要為大家詳細(xì)介紹了超全的文件工具類FileUtil,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評(píng)論