执行实体的CREATE操作时,如何将实体关联放入JSON(在POST HTTP请求中)?

时间:2019-04-27 07:15:01

标签: spring-boot spring-data-rest

我将Spring Boot用作后端框架,并且我有一个PERSON实体,该实体与GENDER实体具有一对一的关系。 我在@RepositoryRestResourcePersonRepository中使用GenderRepository

GENDER表中已经充满了MALE和FEMALE的两个记录,而我有一个角形,可以创建一个新的PERSON。

有一个角形式的性别列表,其中包含GenderRepository(男性/女性)中获得的两个项目。如何将性别ID放入POST请求正文的JSON中以创建新的Person

我看到大多数人都使用text / uri-list更新现有记录,但是我想在创建不更新时进行设置。

1 个答案:

答案 0 :(得分:0)

您可以通过提供指向性别实体的链接来实现。

人员实体


@Entity
public class Person {
    @Id
    @GeneratedValue
    private Long id;

    @OneToOne
    private Gender gender;

    //Other columns and getter/setters are removed for brevity
}

性别实体

@Entity
public class Gender {
    @Id
    @GeneratedValue
    private Long id;

    @Column
    private String gender;
}

以下对localhost:8080 / api / persons的POST请求,其中Content-Type标头设置为application/json,将创建一个新的Person实体,并将其性别设置为ID为1的Gender。

{
    "name": "Mahsum",
    "surname": "Demir",
    "gender": "http://localhost:8080/api/genders/1"
}