將JAX-RS(在JBoss Wildfly容器中)與JSON有效內容和JPA輔助相結合時遇到一些問題。 Follwoing場景:在反序列化JAX-RS JSON對象時解析JPA關聯
有兩種JPA實體
@Entity
class Organization {
@Id
private long id;
private String name;
}
@Entity
class Empolyee {
@Id
private long id;
@Id
private String name;
@ManyToOne(fetch = FetchType.EAGER)
@JsonProperty("organization_id")
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
@JsonIdentityReference(alwaysAsId = true)
private Organization organization;
}
接下來,我有一個JAX-RS服務創造具有以下簽名新員工:
@POST
@Consumes({ "application/json" })
public Response create(final Employee employee) {
}
的JSON新員工由客戶端發送如下:
{
"name" : "Sam Sample",
"organization_id" : 2
}
我的問題是,這個JSON(顯然)無法反序列化爲「Employee」的實例,因爲「organization_id」映射到相應的JPA實體失敗。
如何配置JAX-RS(或Jackson JSON映射器)將「orgainization_id」解釋爲JPA實體的ID?
是你能解決這個問題呢? – Mark 2017-03-06 16:51:53
我們通過引入DTO對象來解決這個問題,在將DTS對象合併到我們的工作單元之前,首先將其轉換爲JSON有效負載。不是很聰明,但它的作品... – woelfle 2017-05-16 14:37:45