我有一项服务,其中我使用具有以下结构的实体
@Entity
public class Product {
@Id
private Integer id;
private String productId;
private List<MobileCompany<?>> companies;
// ...
}
public class MobileCompany<T> extends Company<T> {
private static final long serialVersionUID = -4809948191835736752
private String simType;
// ....
}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(name= "samsung", value = Samsung.class),
@JsonSubTypes.Type(name= "htc",value = Htc.class)})
public class Company<T> implements Serializable {
private static final long serialVersionUID = -8869676577723436716L;
private T info;
private String type;
// ...
}
我的服务类似于下面的
Product sample(@RequestBody Product product) {
....// not doing any update on product
return product;
}
请求如下..
{
id:0903673902783,
companies:[
{
simType:"DUAL",
type:"samsung"
}
]
}
并回到以下回复
{
id:0903673902783,
companies:[
{
simType:"DUAL",
type:"MobileCompany"
}
]
}
为什么我要输入&#34; MobileCompany&#34;而不是&#34;三星&#34; ?
注意 :&#34; MobileCompany&#34;是扩展公司的类的名称,以及我得到的回复&#34; MobileCompany&#34;作为类型而不是请求中指定的类型。产品有MobileCompany列表。