Согласно комментарию @ tomasz-nurkiewicz, я должен использовать аннотацию @XmlTransient
. Но, как отмечено в документации
По умолчанию, если @XmlAccessorType в классе отсутствует и ни один из его суперклассов не аннотирован @XmlAccessorType, тогда предполагается следующее значение по умолчанию для класса:
@ XmlAccessorType (XmlAccessType.PUBLIC_MEMBER)
Где XmlAccessType.PUBLIC_MEMBER
означает, что:
Каждая общедоступная пара получатель / установщик и каждое открытое поле будут автоматически связаны с XML, если только XmlTransient не аннотировано. Поля или пары getter / setter, которые являются частными, защищенными или по умолчанию имеют доступ только к пакетам, привязываются к XML только тогда, когда они явно аннотируются соответствующими аннотациями JAXB.
Так вот почему @XmlTransient
для частного поля не работает на примере Томаша Нуркевича. Есть два возможных способа исправить это:
1) Добавить аннотацию к общедоступному получателю:
private String password;
@XmlTransient
public String getPassword() {
return password;
}
2) Добавить @XmlAccessorType
к классу:
@XmlAccessorType(XmlAccessType.FIELD)
public User {
@XmlTransient
private String password;
}
Найдено по адресу: http://old.nabble.com/@XmlTransient-ignored-td7406659.html