![](/img/trans.png)
[英]Spring Data Rest - Embedded entity not deserialized on POST
[英]Post an entity with Spring Data REST which has relations
我正在使用Spring Data Rest。 嘗試使用關聯POST對象時遇到問題(例如,地址是我的實體中的一個字段,映射為多個對象)。
問題是,我們應該使用什么格式將我們的新實體與其關系聯系起來。 我看到了幾個答案並嘗試了我找到的所有選項。 不幸的是,所有這些都不適合我。 發生以下錯誤:
Caused by: org.h2.jdbc.JdbcSQLException: NULL not allowed for column "ADDRESS_ID"; SQL statement:
我嘗試過的JSON:
{
"name": "test",
"email": "test@email",
"address": "http://localhost:8080/MyApp/address/1"
}
還試過這些:
"address": {"id":"http://localhost:8080/MyApp/address/1"}
還有這個:
"address":{"id":1}
甚至這個:
"address": {
"href": "http://localhost:8080/MyApp/address/1"
}
有沒有辦法做到這一點,或者只為POST編寫自己的控制器實現? 謝謝!
如果您有這樣的模型:
@Entity
public class User {
//..
private String name;
@OneToMany(mappedBy = "user")
private Set<Address> addresses = new HashSet<>();
//..
}
@Entity
public class Address {
//..
@ManyToOne
private User user;
//..
}
那么你可以用這樣的addresses
一個新User
:
POST http://localhost:8080/api/users
{
"name" : "user1",
"addresses" : [
"http://localhost:8080/api/addresses/1",
"http://localhost:8080/api/addresses/2"
]
}
在POST新用戶之前,地址ID#1和ID#2必須已經保留。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.