![](/img/trans.png)
[英]Inserting @OneToMany relation object with child not inserting parent id in child table?
[英]Parent id is not saved in child table Spring JPA2 @OneToMany relation
我有如下所示的 json,它來自我通過 open feign 客戶端獲取的第三方服務。 我正在嘗試使用 Spring JPA2 將這些詳細信息保存到我的 MySQL 數據庫中。
[
{
"request_id": 111,
"name": "ABC",
"groups": [
{
"id": 21,
"group": "grp_A"
},
{
"id": 22,
"group": "grp_B"
}
]
},
{
"request_id": 222,
"name": "ABC",
"groups": [
{
"id": 23,
"group": "grp_C"
}
]
},
{
"request_id": 333,
"name": "ABC",
"groups": [
{
"id": 24,
"group": "grp_A"
}
]
},
{
"request_id": 444,
"name": "ABC",
"groups": [
{
"id": 25,
"group": "grp_C"
}
]
},
{
"request_id": 555,
"name": "ABC",
"groups": []
}
]
我已經為上面的 json 編寫了映射,如圖所示
請求.java
@Entity
@Table(name = "requests")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Requests {
@Id
@Column(name = "request_id")
private String id;
@Column(name = "name")
private String name;
@OneToMany(mappedBy = "id", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Groups> groups = Sets.newHashSet();
// getters and setters
}
組.java
@Entity
@Table(name = "groups")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Groups{
@Id
@Column(name = "id")
private String id;
@Column(name = "group")
private String group;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "request_id")
private Requests requests;
// getters and setters
}
現在在我的服務類中我做了如下所示
List<Requests> allRequests = requestFeignClient.getRequests();
requestRepository.saveAll(allRequests);
除request_id外,所有詳細信息都保存到數據庫中,如下所示。 我的預期組表也如下所示
誰能告訴我為什么request_id沒有被保存。
嘗試替換這個:
@OneToMany(mappedBy = "id", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
有了這個:
@OneToMany(mappedBy = "requests", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.