Двойные элементы, созданные во время сортировки jaxb - PullRequest
0 голосов
/ 05 октября 2018

При маршалинге с использованием JAXB дублированные элементы создаются в выходных данных.Ниже приводится мой корневой класс.

@XmlRootElement(name="rules")
public class RuleList {

    @XmlElement(name="rule")
    private List<Rule> ruleList;

    public List<Rule> getRules() {
        return ruleList;
    }

    public void setRules(List<Rule> ruleList) {
        this.ruleList = ruleList;
    }

}

Это создает дублирующиеся записи.Например, если у меня есть 2 записи в списке, в выходной XML создается 4 записи.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Добавьте следующую аннотацию к вашему классу:

@XmlAccessorType(XmlAccessType.FIELD)

В противном случае ваша реализация JAXB увидит как пару getter / setter, так и аннотированное поле и предположит, что ваш класс имеет два свойства, и будет использоватьони оба.

(Вы также можете добавить эту аннотацию в пакет, содержащий классы модели вашего домена, поместив его в файл package-info.java в пакете - тогда вам не нужно добавлять его к каждомуваших классов).

0 голосов
/ 05 октября 2018

Метод getRules (..) RuleList дублировал записи.Изменение только на rules (), т.е. удаление get , решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...