JAXB-REST не может получить расширенный объект класса

1

У меня есть класс 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>
  • 0
    Можете показать метод POST?
  • 0
    Кажется, конфликт с тем же @XmlRootElement аннотации @XmlRootElement . Вы можете избавиться от него на подклассе, и он все еще будет работать
Показать ещё 2 комментария
Теги:
jaxb
resteasy

1 ответ

0
Лучший ответ

С

@DiscriminatorColumn  
(  
 name="Discriminator",  
 discriminatorType=DiscriminatorType.STRING  
)  
@DiscriminatorValue(value="B") 

Аннотации мы можем сделать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню