У меня есть класс сущности JPA с аннотациями jpa, но без аннотаций jaxb:
@Entity
public class Category extends EntityObject {
@Id
private long id;
// getter setter and stuff
}
Все для jaxb настроено во внешнем XML-файле (потому что нам нужны разные сериализации объекта).
<xml-bindings package-name="mystuff.category">
<java-types>
<java-type name="mystuff.Category" xml-accessor-type="NONE">
<xml-root-element name="category" />
<java-attributes>
<xml-attribute name="name" java-attribute="name" />
<xml-element name="id2" java-attribute="id" />
</java-attributes>
</java-type>
// morestuff ...
мои проблемы начинаются, когда я делаю экземпляр категории на xml. Результат показывает дополнительный элемент id, который не был настроен в xml. и так как категория (или entityObject) не имеет jaxb-аннотаций, я не понимаю, откуда это.
<category xsi:type="category" name="Category_3">
<id>1073741951</id>
<id2>1073741951</id2>
</category>
когда я явно добавляю запись xml-элемента для идентификатора в moxy-xml, я получаю элемент, содержащий идентификатор два раза:
<id>10737419511073741951</id>
Может кто-нибудь сказать мне, как избавиться от этого тега и откуда он взялся?
EDIT
Здесь идентификатор, связанный с кодом в EntityObject-Class
@MappedSuperclass
public abstract class EntityObject implements Serializable {
private static final long serialVersionUID = 1L;
public abstract long getId();
@Field // a solr annotation
public void setId(long id) {
if (getId() <= 0) {
setID(id);
}
}
protected abstract void setID(long id);