JAXB-ElipseLink: предотвращение сортировки унаследованного имущества

Опять же, у меня есть случай маршалинга EclipseLink 2.3, который кажется довольно тривиальным, но не работает должным образом:

У меня есть абстрактный базовый класс, который определяет свойство getX(). У меня есть несколько дочерних классов, производных от этого базового класса, которые наследуют это свойство.

При сортировке дочерних классов это свойство также сортируется для каждого дочернего класса. Однако для одного конкретного дочернего класса я хочу предотвратить сортировку этого свойства.

Я пытался:

  1. @Override это свойство в дочернем классе и установка его @XmlTransient
  2. Указание <xml-transient java-property="X"> в oxm.xml для дочернего класса.

Оба безрезультатно, свойство всегда маршалируется - как это должно работать?


person quaylar    schedule 18.01.2012    source источник


Ответы (1)


Хорошо, вот как я это решил:

Создайте абстрактный базовый класс @XmlTransient, это приведет к тому, что все свойства/поля будут рассматриваться как члены дочерних классов. Затем я отметил X @XmlTransient в дочернем классе, в котором я не хотел, чтобы он маршалировался.

Мне интересно, есть ли альтернатива этому, если кто-то не может установить переходный процесс базового класса - по какой-либо причине.

Идеи?

person quaylar    schedule 18.01.2012