Вот моя проблема:JAX-RS пользовательского отображения сущностей в XML
Скажет, у меня есть два лица с аннотацией JAX-RS аннотациями:
@XmlRootElement
@Entity
public Person {
private String firstname;
private String lastname;
private Address address;
}
@XmlType
@Entity
public Address {
private String street;
private String city;
}
Это будет получить воспроизводимую в:
<person>
<firstname></firstname>
<lastname></lastname>
<address>
<street></street>
<city></city>
</address>
</person>
Мой вопрос, поэтому:
Можно ли аннотировать эти объекты так, чтобы возвращаемый xml:
<person>
<firstname></firstname>
<lastname></lastname>
<street></street>
<city></city>
</person>
т. Е. Свойства объекта адреса рассматриваются как свойства Person (без закрывающих тегов)?
неа, не работает. @XmlTransient заставляет свойство игнорировать при преобразовании в xml. Сначала я создал набор классов, аннотированных только аннотациями jax-rs, но затем, когда я извлекал что-либо из базы данных, мне пришлось скопировать все свойства из аннотированного объекта @Entity в аннотированный объект @Xml - казалось, overkill, так как все, что я хотел, было плюнуть на некоторый xml.Таким образом, в конце концов я закончил реализацию MessageBodyWriter, который создает xml, который я хочу - он не так гибок, как мне хотелось, но он работает. Но все равно спасибо. – Jakub
Ну, точка кода заключается в том, что он делает переходный период «Адрес», а затем включает в себя свойства, которые вы хотите (возможно, вам нужен @XmlProperty). Мне кажется, что написание собственного писателя более утомительно, чем DTO, но до вас. –