Я попытался предложение @ Блез-doughan и добавил к @XmlTransient
аннотацию к верхней части моей абстрактного базового класса.
С моей средой (так что мой продукт зависит что-то строго), то JAXB-апи библиотека говорит «аннотации @XmlTransient
отвергается для этого места» из-за версии это высоким, вероятно, старше, чем 2.1. Я понял, что когда я попытался добавить аннотацию с новым тестовым классом-путём, который содержит версию > = 2.1, поэтому он позволяет определить ее в верхней части класса.
Так что позвольте мне прямо перейти к сути, я предлагаю метод ниже, чтобы избавиться от полей , которые появляются в ответах, которые строятся и маршалируются из расширенных классов.
Я только добавил @XmlDiscriminatorNode("")
к верхней части моего базового класса, и я полагал, что вы используете EclipseLink Moxy:
import org.eclipse.persistence.oxm.annotations.XmlDiscriminatorNode;
@XmlDiscriminatorNode("")
public abstract class Base {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
В качестве резюме вы можете использовать @XmlTransient
, если у вас есть JAXB-апи версии больше чем 2.1 или используйте мой метод, если у вас есть EclipseLink MOXy.
Спасибо. Теперь я сделал суперкласс XmlTransient, который также делает xsi: type disapear. Я использовал аннотацию для этого. Есть ли способ использовать , чтобы сделать java-тип преходящим? Я мог бы заставить его работать только для java-атрибутов. –
hansi
@hansi - Я обновил свой ответ с этой информацией. –