JAXB-REST 无法获得扩展 class 对象
JAXB-REST cannot get extended class object
我有 class A 和 class B
class B 扩展 class A
会变成这样
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name="root")
@Inheritance(strategy=InheritanceType.JOINED)
@XmlSeeAlso(value={B.class})
class A implements Serializable{
@Column(name="name")
@XmlAttribute(name="name")
private String name;
//more fields and getters and setters...
}
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name="root")
class B extends A{
@XmlElement(name="type")
private String type;
// Fields and getter setters...
}
当我在 REST POST 方法中传递 B class 对象时,我无法获取 B 的实例,而只能获取 class A 的实例。如何获取 B 实例,是还有更多配置可以做到这一点吗?
因为我有更多像 B 一样的 class,它们都是 class A 的扩展,所以我需要在数据库中保留相应的实体。请帮我解决这个问题。
编辑:
我的输入是这样的:
<root name="Duster">
<type>SUV<type>
</root>
与
@DiscriminatorColumn
(
name="Discriminator",
discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue(value="B")
注释我们可以做到。
我有 class A 和 class B
class B 扩展 class A
会变成这样
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name="root")
@Inheritance(strategy=InheritanceType.JOINED)
@XmlSeeAlso(value={B.class})
class A implements Serializable{
@Column(name="name")
@XmlAttribute(name="name")
private String name;
//more fields and getters and setters...
}
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name="root")
class B extends A{
@XmlElement(name="type")
private String type;
// Fields and getter setters...
}
当我在 REST POST 方法中传递 B class 对象时,我无法获取 B 的实例,而只能获取 class A 的实例。如何获取 B 实例,是还有更多配置可以做到这一点吗?
因为我有更多像 B 一样的 class,它们都是 class A 的扩展,所以我需要在数据库中保留相应的实体。请帮我解决这个问题。
编辑:
我的输入是这样的:
<root name="Duster">
<type>SUV<type>
</root>
与
@DiscriminatorColumn
(
name="Discriminator",
discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue(value="B")
注释我们可以做到。