你好,請原諒我的英語!JAXB + JPA + JAX-RS,JAXB註釋問題
假設我有這個實體,這個namedquery使用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;
}
現在的問題是在編組期間因爲沒有爲name字段一個@XmlRootElement註釋。 只有在執行了namedquery Person.selectName時,我纔會輸出像<Persons><Person><name>value1</name></Person><Person><name>value2</name></Person>
而不包含<surname>
標記。而且我不能使用@XmlTransient,因爲namedquery「selectAll」需要那個。 如何以「優雅的方式」解決?
隨着@XmlTransient註釋當我執行namedquery 「Person.selectAll」 的XML輸出不包含''標籤。 –
raid3n
2011-03-02 20:24:52
我以爲你想要排除姓氏標籤。您的問題指出「沒有標籤」。 –
2011-03-02 20:38:18
你是對的。我編輯了我的問題。謝謝。 – raid3n 2011-03-02 20:43:33