Здравствуйте и извините за мой английский!
Предположим, у меня есть этот объект с этим именованным запросом, который выбирает столбец имени с аннотациями jaxb.
@Entity
@NamedQueries({
@NamedQuery(name = "Person.selectAll", query = "SELECT p FROM Form p"),
@NamedQuery(name = "Person.selectName", query = "SELECT p.id,p.name FROM Form p"),
});
@XmlRootElement
public class Person implements Serializable {
@Id
@Column
private int id;
@XmlElement
private String name;
@Column
@XmlElement
private String surname;
..
}
Предположим, теперь у меня есть метод Rest, которыйвыполняет namedquery Person.selectName и возвращает код ответа XML или JSON.
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/list")
public List<Person> getList()
{
//here i execute the namedquery Person.selectName
List<Person> persons = executeNamedQuery().getList();
return persons;
}
Теперь проблема заключается в сортировке, поскольку для поля имени нет аннотации @XmlRootElement.Я хотел бы выводить как <Persons><Person><name>value1</name></Person><Person><name>value2</name></Person>
без тегов <surname>
только при выполнении именованного запроса Person.selectName.И я не могу использовать @XmlTransient, потому что именованный запрос «selectAll» этого хочет.Как решить в "элегантной манере"?