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

@OneToMany查詢陷入循環(huán)引用的解決方案

 更新時(shí)間:2021年10月19日 08:44:53   作者:H_Dsheng  
這篇文章主要介紹了@OneToMany查詢陷入循環(huán)引用的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@OneToMany查詢陷入循環(huán)引用問題

問題報(bào)錯(cuò)如下

在這里插入圖片描述

在這里插入圖片描述

主要信息為:

wrapping Result set representing update count of 4>

以及:

exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

原本配置:

在這里插入圖片描述 在這里插入圖片描述

報(bào)錯(cuò)原因是兩個(gè)類都使用了急加載的方式,就會(huì)導(dǎo)致一直查找外鍵的實(shí)體類而陷入循環(huán),從而報(bào)錯(cuò)。

解決方案:按需改為L(zhǎng)AZY即可

@OneToMany( fetch = FetchType.LAZY)

success result:

在這里插入圖片描述

JPA@OneTOMany查詢?cè)趓uturn的時(shí)候出現(xiàn)錯(cuò)誤

java.lang.IllegalStateException原因和解決方法

在controller返回?cái)?shù)據(jù)到統(tǒng)一json轉(zhuǎn)換的時(shí)候,出現(xiàn)了json infinite recursion stackoverflowerror的錯(cuò)誤,即json在將對(duì)象轉(zhuǎn)換為json格式的數(shù)據(jù)的時(shí)候,出現(xiàn)了無限遞歸調(diào)用的情況。

具體的情況如下

A類中,有個(gè)屬性:List<B> b, A與B的關(guān)系為 OneToMany;在B類中,有屬性A a,引用到A中的字段id,并作為外鍵。hibernate查詢結(jié)果正常,可以看到返回的A對(duì)象中,有b參數(shù)值,但在json轉(zhuǎn)換的時(shí)候就出現(xiàn)了無限遞歸的情況。

個(gè)人分析,應(yīng)該是json在序列化A中的b屬性的時(shí)候,找到了B類,然后序列化B類,而B類中有a屬性,因此,為了序列化a屬性,json又得去序列化A類,如此遞歸反復(fù),造成該問題。

同時(shí)值得注意的是必須重寫其中一個(gè)類toString方法,去除其中另一個(gè)類的內(nèi)容,否則也會(huì)造成無限遞歸的產(chǎn)生。

解決

在B類中a的getter setter方法上加注解@JsonBackReference,只在setter方法上加@JsonBackReference也夠了。

如果是使用lombok注解,可以直接在B類的a字段上添加注解@JsonBackReference

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法

    詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法

    這篇文章主要介紹了詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • Redis內(nèi)存數(shù)據(jù)庫(kù)示例分析

    Redis內(nèi)存數(shù)據(jù)庫(kù)示例分析

    Redis本身的內(nèi)容比較復(fù)雜。如果你上來,你應(yīng)該研究一個(gè)細(xì)節(jié)點(diǎn),比如連接池和數(shù)據(jù)結(jié)構(gòu)。雖然可以直接了解某一點(diǎn)的詳細(xì)來源內(nèi)容,甚至盡快解決一些意外,但是容易淹沒在失眠的細(xì)節(jié)中,整體控制不了Redis
    2022-12-12
  • Java那點(diǎn)兒事之Map集合不為人知的秘密有哪些

    Java那點(diǎn)兒事之Map集合不為人知的秘密有哪些

    Map用于保存具有映射關(guān)系的數(shù)據(jù),Map集合里保存著兩組值,一組用于保存Map的key,另一組保存著Map的value,和查字典類似,通過key找到對(duì)應(yīng)的value,通過頁(yè)數(shù)找到對(duì)應(yīng)的信息。用學(xué)生類來說,key相當(dāng)于學(xué)號(hào),value對(duì)應(yīng)name,age,sex等信息。用這種對(duì)應(yīng)關(guān)系方便查找
    2021-10-10
  • 基于CopyOnWriteArrayList并發(fā)容器(實(shí)例講解)

    基于CopyOnWriteArrayList并發(fā)容器(實(shí)例講解)

    下面小編就為大家?guī)硪黄贑opyOnWriteArrayList并發(fā)容器(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Java服務(wù)調(diào)用RestTemplate與HttpClient的使用詳解

    Java服務(wù)調(diào)用RestTemplate與HttpClient的使用詳解

    無論是微服務(wù)還是SOA,都面臨著服務(wù)間的遠(yuǎn)程調(diào)用,這篇文章主要介紹了服務(wù)調(diào)用RestTemplate與HttpClient的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • SpringBoot整合SpringCloud的過程詳解

    SpringBoot整合SpringCloud的過程詳解

    SpringCloud專注于為典型的用例和擴(kuò)展機(jī)制提供良好的開箱即用體驗(yàn),在介紹SpringCloud默認(rèn)使用的注冊(cè)中心前,先給大家介紹下分布式系統(tǒng)的三個(gè)指標(biāo),具體內(nèi)容詳情跟隨小編一起看看吧
    2021-09-09
  • 小議Java的源文件的聲明規(guī)則以及編程風(fēng)格

    小議Java的源文件的聲明規(guī)則以及編程風(fēng)格

    這篇文章主要介紹了小議Java的源文件的聲明規(guī)則以及編程風(fēng)格,僅給Java初學(xué)者作一個(gè)簡(jiǎn)單的示范,需要的朋友可以參考下
    2015-09-09
  • springboot實(shí)現(xiàn)修改請(qǐng)求狀態(tài)404改為200

    springboot實(shí)現(xiàn)修改請(qǐng)求狀態(tài)404改為200

    這篇文章主要介紹了springboot實(shí)現(xiàn)修改請(qǐng)求狀態(tài)404改為200方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringBoot簡(jiǎn)單實(shí)現(xiàn)定時(shí)器過程

    SpringBoot簡(jiǎn)單實(shí)現(xiàn)定時(shí)器過程

    這篇文章主要介紹了SpringBoot簡(jiǎn)單實(shí)現(xiàn)定時(shí)器過程,對(duì)于Java后端來說肯定實(shí)現(xiàn)定時(shí)功能肯定是使用到Spring封裝好的定時(shí)調(diào)度Scheduled
    2023-04-04
  • IntelliJ IDEA窗口組件具體操作方法

    IntelliJ IDEA窗口組件具體操作方法

    IDEA剛接觸不久,各種常用工具窗口找不到,不小心關(guān)掉不知道從哪里打開,今天小編給大家分享這個(gè)問題的解決方法,感興趣的朋友一起看看吧
    2021-09-09

最新評(píng)論