1
鑑於JPA-RS示例here,我增加了對地址的新屬性添加到Student
類:屬性與@Embeddable和@XmlPath(「」)
@Embedded
@XmlPath(".")
private Address address;
的Address
類:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@Embeddable
public class Address implements Serializable {
private static final long serialVersionUID = 1L;
private String streetName;
private int streetNumber;
private int zipCode;
private String city;
// constructor, getters, etc.
}
當訪問元數據URL http://host:port/context-root/persistence/persistence-unit/metadata/entity/Student
,它所描述的模型,而不會嵌入新添加的屬性的屬性:
{
"name": "Student",
"attributes": [
{
"name": "id",
"type": "Long"
},
{
"name": "name",
"type": "String"
},
{
"name": "address",
"type": "Address"
},
{
"name": "courses",
"type": "List<Course>"
}
],
但發送這樣一個對象時,它也使用GET返回對象以這種形式,它的工作像預期一樣:
{
"name": "John",
"streetName": "Rue Doe",
"streetNumber": 123,
"zipCode": 45678,
"city": "Samplesten"
}
我的問題:這是一個預期的行爲?比方說,我想使用元數據api,讓用戶知道他們必須使用的一般模型。正確的設計極具誤導性。同樣適用於重命名屬性。
謝謝布萊斯,我對這裏的SO JPA-RS的另一個懸而未決的問題。我參加了Sean Smith的一次演講,鼓勵觀衆使用JPA-RS。但令人遺憾的是,這個文檔並不是很廣泛,在eclipse.org上EL論壇上的問題很少得到回答。我是否錯過了一個重要的信息渠道,我可以從中獲得快速幫助?謝謝 – Imperative