国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JPA 一對(duì)多雙向映射 結(jié)果對(duì)象相互迭代 造成堆棧溢出問(wèn)題方法

diabloneo / 3596人閱讀

摘要:?jiǎn)栴}在雙向映射時(shí),會(huì)相互包含對(duì)方的實(shí)例,相互引用,造成遞歸迭代,堆棧溢出。分析在后端向前端傳遞的時(shí)候會(huì)將數(shù)據(jù)序列化,轉(zhuǎn)為,這時(shí)會(huì)出現(xiàn)循環(huán)引用造成堆棧溢出解決方案解決方法就是在轉(zhuǎn)換時(shí)忽略循環(huán)字段。

問(wèn)題:

JPA 在雙向映射時(shí),會(huì)相互包含對(duì)方的實(shí)例,相互引用,造成遞歸迭代,堆棧溢出(java.lang.StackOverflowError)。

分析:

在后端向前端傳遞的時(shí)候會(huì)將數(shù)據(jù)序列化,轉(zhuǎn)為json,這時(shí)會(huì)出現(xiàn)循環(huán)引用造成堆棧溢出

解決方案:

解決方法就是在轉(zhuǎn)換json時(shí)忽略循環(huán)字段。首先確定項(xiàng)目使用的json包是哪一個(gè)(jackjson 或 fastjson),尋找相應(yīng)的注解忽略某一字段。

jackson包對(duì)應(yīng)的相關(guān)注解: @JsonIgnoreProperties、@JsonIgnore

fastjson包對(duì)應(yīng)的相關(guān)注解: @JSONField(serialize = false)

注意: 在使用注解時(shí)一定要注意引入的包是否正確,如果和自己使用的json包不對(duì)應(yīng)的話,注解是不生效的。

附代碼:
// 我的項(xiàng)目使用的alibaba的fastjson包

@Data
class SOStudent {
    
    
    // ... ...省略其他字段
        
    @ManyToOne(cascade = {CascadeType.REFRESH}, fetch = FetchType.LAZY)
    @JoinColumn(name="classId")
    @JSONField(serialize = false)
    private SOClass class;
}

@Data
class SOClass {
    @Id
    @GeneratedValue
    private Long id
        
    // ... ...省略其他字段
        
    @OneToMany(cascade={CascadeType.ALL},fetch = FetchType.EAGER)
    private List students;
}


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/73315.html

相關(guān)文章

  • JPA關(guān)系映射

    摘要:關(guān)系映射四種映射關(guān)系在關(guān)系數(shù)據(jù)庫(kù)中有表與表存在下面幾種關(guān)系多對(duì)一關(guān)系一對(duì)一關(guān)系一對(duì)多關(guān)系多對(duì)多關(guān)系也對(duì)應(yīng)這中四種映射關(guān)系單值串聯(lián)從一個(gè)實(shí)體實(shí)例關(guān)聯(lián)到另一個(gè)實(shí)體實(shí)例上其中目標(biāo)基數(shù)為成為單值關(guān)聯(lián)多對(duì)一關(guān)系和一對(duì)一關(guān)系都是屬于這 JPA關(guān)系映射 四種映射關(guān)系 在關(guān)系數(shù)據(jù)庫(kù)中, 有表與表存在下面幾種關(guān)系 多對(duì)一關(guān)系(Many-to-One) 一對(duì)一關(guān)系(One-to-One) 一對(duì)多關(guān)系(O...

    Faremax 評(píng)論0 收藏0
  • js面試題(下)

    摘要:短路運(yùn)算返回值是什么又稱為短路或,短路如果左側(cè)為真,則不再進(jìn)行右側(cè)運(yùn)算,同時(shí)返回左側(cè)表達(dá)式運(yùn)算結(jié)果。上面是不存在的,所有結(jié)果為,轉(zhuǎn)成就是,那么就會(huì)運(yùn)算,把賦值給的同時(shí),返回值也是,所以打印返回結(jié)果是函數(shù)內(nèi)部變量有哪些 DOM元素e的e.getAttribute(propName)和e.propName有什么區(qū)別和聯(lián)系 e.getAttribute(),是標(biāo)準(zhǔn)DOM操作文檔元素屬性的方...

    zhoutao 評(píng)論0 收藏0
  • Spring Boot QuickStart (5) - Spring Data JPA

    摘要:關(guān)聯(lián)關(guān)系的關(guān)聯(lián)關(guān)系定義上,感覺并不是很靈活,姿勢(shì)也比較難找。如,定義在關(guān)聯(lián)關(guān)系上的參數(shù)可以設(shè)置級(jí)聯(lián)的相關(guān)東西。因?yàn)樾蛄谢瘯?huì)涉及到實(shí)體類關(guān)聯(lián)對(duì)象的獲取,會(huì)觸發(fā)所有的關(guān)聯(lián)關(guān)系。 接(4) - Database 系列. Java Persistence API,可以理解就是 Java 一個(gè)持久化標(biāo)準(zhǔn)或規(guī)范,Spring Data JPA 是對(duì)它的實(shí)現(xiàn)。并且提供多個(gè) JPA 廠商適配,如 Hi...

    sutaking 評(píng)論0 收藏0
  • 慕課網(wǎng)_《Hibernate注解》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期二說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。文件如下在目錄下,創(chuàng)建文件指定映射文件的路徑注解映射實(shí)體類可選,對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一個(gè)表。 時(shí)間:2017年07月11日星期二說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無(wú)學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:類級(jí)別注解 1-1 本章簡(jiǎn)介 本章簡(jiǎn)介 H...

    Jaden 評(píng)論0 收藏0
  • 超實(shí)用百道Java面試題

    摘要:是的簡(jiǎn)稱,運(yùn)行環(huán)境,為的運(yùn)行提供了所需的環(huán)境。分割字符串,返回分割后的字符串?dāng)?shù)組。當(dāng)計(jì)算的值相同時(shí),我們稱之為沖突,的做法是用鏈表和紅黑樹存儲(chǔ)相同的值的。迭代器取代了集合框架中的,迭代器允許調(diào)用者在迭代過(guò)程中移除元素。 Java基礎(chǔ)1.JDK和JRE有什么區(qū)別? JDK 是java development kit的簡(jiǎn)稱,java開發(fā)工具包,提供java的開發(fā)環(huán)境和運(yùn)行環(huán)境。JRE 是j...

    MkkHou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<