第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果從實體關系調用 JsonIgnore 屬性

如果從實體關系調用 JsonIgnore 屬性

GCT1015 2022-05-21 20:36:42
@JsonIgnore如果它們是從其他實體的集合中序列化的(多對一),我正在嘗試有條件地從實體中獲取某些字段。我試圖添加@JsonIgnoreProperties到集合中,但據(jù)我所知,注釋不是為了這個目的。class A {    //some fields    @ManyToOne private B b; //if only A is requested, this should NOT be ignored    }class B {    //some fields    @OneToMany    @IgnorePrivateBInAToAvoidStackOverflow    private Set<A> collectionOfAs;}有沒有辦法實現(xiàn)這種行為?
查看完整描述

3 回答

?
滄海一幻覺

TA貢獻1824條經(jīng)驗 獲得超5個贊

為避免循環(huán)引用無限遞歸(stackoverflow 錯誤),您必須使用 @JsonIdentityInfo 注釋cals


所以你的課看起來像:


@JsonIdentityInfo(

       generator = ObjectIdGenerators.PropertyGenerator.class, 

       property = "id")

class A {

    //some fields

    //Integer id;



    @OneToMany private B b; //if only A is requested, this should NOT be ignored    

}

B類雙向使用也是如此:


@JsonIdentityInfo(

       generator = ObjectIdGenerators.PropertyGenerator.class, 

       property = "id")

class B {

    //some fields


    @ManyToOne

    @IgnorePrivateBInAToAvoidStackOverflow

    private Set<A> collectionOfAs;

請注意,property指的是您的唯一字段名稱(id 在此示例中設置為)


查看完整回答
反對 回復 2022-05-21
?
婷婷同學_

TA貢獻1844條經(jīng)驗 獲得超8個贊

您對@ManyToOne&的使用@OneToMany不正確,您必須在實體集合屬性上的實體@OneToMany內使用,反之亦然OneMany@ManyToOne


class A {


    @ManyToOne 

    @JsonBackReference

    private B b;

}


class B {


    @OneToMany

    @JsonManagedReference

    private Set<A> collectionOfAs;

}

并且據(jù)我所知,您想忽略所有者B從 class 進行反向引用A,并創(chuàng)建一個 stackoverflow 異常,以使用我在上面的示例中添加的注釋來實現(xiàn)這一點,@JsonBackReference這@JsonManagedReference將停止無限在它的軌道上循環(huán)。


查看完整回答
反對 回復 2022-05-21
?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

如果 B 類有一個 A 類的集合,那么 B 類中的 A 的集合應該被注釋@OneToMany,并且 A 類中的字段應該被注釋@ManyToOne,那么你可以@JsonIgnore像這樣把你放在集合上:


class A {

    //some fields


    @ManyToOne private B b; //if only A is requested, this should NOT be ignored    

}


class B {

    //some fields



    @OneToMany

    @JsonIgnore

    private Set<A> collectionOfAs;

}

我的猜測是您收到 StackOverflow 錯誤,因為當您獲取 B 類的某個對象時,它帶來了 As 類的對象集,它們本身帶來了最初獲取的 B 類的相同對象,這將去無限,除非您在 Set 字段上提供 @JsonIgnore。這樣,當你調用 A 類的對象時,它們 B 類的字段對象也會被獲取,但是當你調用 B 類的對象時,它們的 As 類集合將被忽略。


查看完整回答
反對 回復 2022-05-21
  • 3 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號