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

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

將 JSON 反序列化為多態(tài)類型 彈簧啟動(dòng)

將 JSON 反序列化為多態(tài)類型 彈簧啟動(dòng)

慕哥9229398 2022-09-28 15:48:37
我正在從事一個(gè)電子政策項(xiàng)目,我需要保存不同類型的政策。為了簡單起見,我只考慮兩種類型的“人壽保險(xiǎn)”和“自動(dòng)保險(xiǎn)”。我想實(shí)現(xiàn)的是,如果創(chuàng)建保單的JSON請求包含“類型”:“AUTO_INSURANCE”,那么該請求應(yīng)映射到自動(dòng)保險(xiǎn).class同樣適用于LifeInsurance,但目前在春季啟動(dòng)應(yīng)用程序中,請求將映射到父類策略,消除了汽車/人壽保險(xiǎn)的特定請求字段。我創(chuàng)建的域模型如下所示。@Entity@Inheritance(strategy = InheritanceType.JOINED)@NoArgsConstructor@Getter@Setter@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")@JsonSubTypes({ @Type(value = AutoInsurance.class, name = "AUTO_INSURANCE"),    @Type(value = LifeInsurance.class) })public class Policy {    @Id    @GeneratedValue    private Long id;    private String policyNumber;    @Enumerated(EnumType.STRING)    private PolicyType policyType;    private String name;}我的自動(dòng)保險(xiǎn)類別如下。@Entity@NoArgsConstructor@Getter@Setter@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")@JsonTypeName(value = "AUTO_INSURANCE")public class AutoInsurance extends Policy {    @Id    @GeneratedValue    private Long id;    private String vehicleNumber;    private String model;    private String vehicleType;    private String vehicleName;}以下是人壽保險(xiǎn)型兒童課程@Entity@NoArgsConstructor@Getter@Setter@JsonTypeName(value = "LIFE_INSURANCE")public class LifeInsurance extends Policy {    @OneToMany(mappedBy = "policy")    private List<Dependents> dependents;    private String medicalIssues;    private String medication;    private String treatments;}為了保存保單詳細(xì)信息,我從UI發(fā)送JSON請求,其中包含一個(gè)“類型”屬性,指示請求中的保險(xiǎn)類型。我可以獲取字符串,自動(dòng)連線對象映射器和手動(dòng)解析的JSON,但我想了解這是否是一個(gè)已知問題,以及是否有其他人在Spring boot中遇到過同樣的情況。我已經(jīng)搜索了這方面的解決方案,但我得到了反序列化到多態(tài)類的解決方案,但與Spring boot的問題無關(guān)。
查看完整描述

1 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

在您的方法中,您尚未使用 注釋方法參數(shù)。這導(dǎo)致 Spring 只創(chuàng)建一個(gè)實(shí)例,而不是使用 Jackson 來轉(zhuǎn)換請求正文。Policy@RequestBodyPolicy


@PostMapping

public void savePolicy(@RequestBody Policy policy) {

    System.out.println(policy.getClass());

}

添加 將使 Spring 使用 Jackson 來反序列化請求正文,并且您的注釋/配置將有效。@RequestBody


查看完整回答
反對 回復(fù) 2022-09-28
  • 1 回答
  • 0 關(guān)注
  • 92 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

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