У меня есть класс следующим образом:
@XmlRootElement(name="User")
@XmlAccessorType(XmlAccessType.NONE)
public class User {
private int id;
private String name;
public User() { }
@XmlAttribute
public int getID() {
return id;
}
public void setID() {
this.id = id;
}
@XmlElement
public String getName() {
return first + " " + last;
}
public void setName(String name) {
this.name = name;
}
// other class code
}
Я использую этот класс для службы JAX-RS. Когда клиент желает создать нового пользователя, необходимо отправить XML-представление следующего формата.
<User>
<name>John Doe</name>
</User>
При получении такого фрагмента мой сервис правильно создает нового пользователя. Однако, если клиент включает в себя атрибут идентификатора для пользователя (например, <User id="100">...</User>
), значение идентификатора атрибута назначается пользователю.
Как вы можете себе представить, я хочу использовать поле ID в качестве первичного ключа класса User и не хочу, чтобы пользователь мог его указать. Однако когда я возвращаю представление экземпляра User (также в XML), я хочу иметь возможность указать идентификатор в качестве атрибута.
Как мне этого добиться?