簡體   English   中英

使用具有關系的Spring Data REST發布實體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM