Данные дублируются при записи в файл - PullRequest
0 голосов
/ 09 июня 2018

У меня проблемы с использованием JAXB или BufferedWriter.Когда я добавляю сотрудников в список сотрудников, а затем Marshall список, я получаю список сотрудников, записанный в файл XML, но он записывает список дважды.вот мой код

package schleusner.cameron;
import javax.xml.bind.annotation.XmlElement;

public class Employee {
    private String name;
    private String password;
    private String login;
    private String logout;
    private String lunchin;
    private String lunchout;

    @XmlElement
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @XmlElement
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @XmlElement
    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    @XmlElement
    public String getLogout() {
        return logout;
    }

    public void setLogout(String logout) {
        this.logout = logout;
    }

    @XmlElement
    public String getLunchin() {
        return lunchin;
    }

    public void setLunchin(String lunchin) {
        this.lunchin = lunchin;
    }

    @XmlElement
    public String getLunchout() {
        return lunchout;
    }

    public void setLunchout(String lunchout) {
        this.lunchout = lunchout;
    }
}

Выход файла : https://pastebin.com/raw/aTqmqwHh

1 Ответ

0 голосов
/ 09 июня 2018

Измените @XmlAccessorType(XmlAccessType.FIELD) на @XmlAccessorType (XmlAccessType.PROPERTY) в Employees классе.

В качестве альтернативы переместите @XmlElement(name = "Employee") на private List<Employee> employee;.

Проблема в том, что JAXB рассматривает оба @XmlAccessorType кака также явные аннотации.Таким образом, это в основном то, что у вас есть два свойства employee и employees, оба сопоставлены с элементом Employee.Это приводит к дублированию вывода.

...