自昨天以来,我一直在寻找答案,并没有成功找到答案。
您可以同时使用它的子实体保存实体吗?根据我所看到的,这样做的方法是保存实体,按照响应中的链接,然后添加子实体。有没有办法一次发布所有内容?
{
"name": "some-name",
"age": "30",
"address": {
"street": "some-street",
"city": "some-city"
}
}
在上面的示例中,我们有一个Person
实体,它与OneToMany
实体的关系Address
。我知道您保存Person
,从响应中获取链接,并保存Address
,但如果可能的话,一次性完成所有操作会很方便。我假设它不可能开箱即用,但我想在编写一个自定义控制器方法之前我会先问一次。
答案 0 :(得分:1)
这将适用于通过POST添加新实体。对于编辑现有实体,如果包含所有数据并在JSON中公开ID,这也可以通过PUT请求工作。
e.g。
public class MvcConfiguration extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
super.configureRepositoryRestConfiguration(config);
config.exposeIdsFor(/*Person.class,*/ Address.class);
}
}
PUT / person / 123
{
//"id" : 123, prob not required
"name": "new-name",
"age": "30",
"address": {
"id": 1, //required
"street": "new-street",
"city": "some-city"
}
}
我已经使用了多个级别的嵌套和集合,但只有当子实体没有自己的REST端点时才会使用:我不确定这是否与事物有任何关系。