我正在从事一个电子政策项目,我需要保存不同类型的政策。为了简单起见,我只考虑两种类型的“人寿保险”和“自动保险”。我想实现的是,如果创建保单的JSON请求包含“类型”:“AUTO_INSURANCE”,那么该请求应映射到自动保险.class同样适用于LifeInsurance,但目前在春季启动应用程序中,请求将映射到父类策略,消除了汽车/人寿保险的特定请求字段。我创建的域模型如下所示。
@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;
}
我的自动保险类别如下。
@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;
}
以下是人寿保险型儿童课程
@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;
}
为了保存保单详细信息,我从UI发送JSON请求,其中包含一个“类型”属性,指示请求中的保险类型。
我可以获取字符串,自动连线对象映射器和手动解析的JSON,但我想了解这是否是一个已知问题,以及是否有其他人在Spring boot中遇到过同样的情况。我已经搜索了这方面的解决方案,但我得到了反序列化到多态类的解决方案,但与Spring boot的问题无关。
largeQ
相关分类