Java JAXB-REST无法获取扩展类对象
我有A班和B班 B类扩展了A类 会是这样的Java JAXB-REST无法获取扩展类对象,java,jaxb,resteasy,Java,Jaxb,Resteasy,我有A班和B班 B类扩展了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")
@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类对象时,我不能得到B类的实例,而只能得到A类的实例。我如何才能得到B类的实例,是否还有其他配置可以做到这一点?因为我有更多像B这样的类,它们都是扩展类A,所以我需要在DB中持久化各自的实体。请帮我做这个
编辑:
我的意见如下:
<root name="Duster">
<type>SUV<type>
</root>
与
注释我们可以做到。您能显示POST方法吗?似乎与相同的@XmlRootElement注释值冲突。你可以在子类中去掉它,它仍然可以work@peeskillet所以它不会根据输入值检测实例?还有别的办法吗?我不知道。也许一些JAXB专家会来为您解答这个问题:-。我只是根据我测试的内容提供一个评论。
@DiscriminatorColumn
(
name="Discriminator",
discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue(value="B")