java—如何使用SpringDataREST和nullable=false关联发布实体

qij5mzcb  于 2021-07-05  发布在  Java
关注(0)|答案(0)|浏览(200)

我正在使用springdatarest(3.3.5.release),配置为在http://localhost:8080/api。我有一个域实体 Reservation 它有一个不可为null的 @OneToMany 与其他域实体的关系 Member .
两个都有一个 Repository 已创建扩展 CrudRepository 接口。
我想知道如何成功地创建一个 Reservation 使用实体 POST/api/reservations . 见下表:
成员.java

@Entity
@Getter
@Setter
public class Member {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    ...
}

预订.java

@Entity
@Getter
@Setter
public class Reservation {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne
    @JoinColumn(nullable = false)
    private Member owner;

    ...
}

什么时候 nullabletrue 为了 Reservation.owner ,我当然可以创建 Reservation 实体优先和关联a Member 实体使用 PUTContent-Type: "text/uri-list" 正如这里所建议的。
但在这种情况下 nullable 作为 false ,我不知道怎么做。我需要做一些类似的事情:

curl -X POST "http://localhost:8080/api/members" -H "accept: */*" -H "Content-Type: application/json" -d "{ ... }"

connection: keep-alive 
content-type: application/hal+json 
date: Thu03 Dec 2020 06:15:37 GMT 
keep-alive: timeout=60 
location: http://localhost:8080/api/members/1 
transfer-encoding: chunked 
vary: OriginAccess-Control-Request-MethodAccess-Control-Request-Headers 

{
  ...,
  "_links": {
    "self": {
      "href": "http://localhost:8080/api/members/1"
    },
    "member": {
      "href": "http://localhost:8080/api/members/1"
    }
  }
}
curl -X POST "http://localhost:8080/api/reservations" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"owner_id\": 1, ... }"

除了创建一个自定义控制器来处理这个场景之外,还有什么现成的支持可以用于springdatarest来创建一个新的 Reservation 实体?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题