我正在使用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;
...
}
什么时候 nullable
是 true
为了 Reservation.owner
,我当然可以创建 Reservation
实体优先和关联a Member
实体使用 PUT
与 Content-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
实体?
暂无答案!
目前还没有任何答案,快来回答吧!