У меня есть класс 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")
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...
}
Когда я передаю объект класса B в методе REST POST, я не могу получить экземпляр B, вместо этого я получаю только экземпляр класса A. Как я могу получить экземпляр B, есть ли еще какая-либо конфигурация для этого?
Поскольку у меня есть больше класса, такого как B, который все расширяет класс A, мне нужно сохранить соответствующий Entity в DB. Пожалуйста помоги мне с этим.
РЕДАКТИРОВАТЬ:
мой вход хотел бы:
<root name="Duster">
<type>SUV<type>
</root>
С
@DiscriminatorColumn
(
name="Discriminator",
discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue(value="B")
Аннотации мы можем сделать.
@XmlRootElement
аннотации@XmlRootElement
. Вы можете избавиться от него на подклассе, и он все еще будет работать