szx*_*nyc 8 spring spring-data spring-data-jpa spring-data-rest spring-hateoas
我正在使用Spring Data REST来公开我的实体及其关系.我在两个实体之间有一个OneToOne关系,我正在尝试更新/改变与PUT和PATCH的关系.
我注意到Spring Data REST只允许您更新链接资源 - JPA映射实体(OneToMany,ManyToOne等),它们也是AggregateRoots(有一个存储库) - 通过PATCH并被PUT忽略 .
这可以在LinkedAssociationSkippingAssociationHandler类中看到:
if (associationLinks.isLinkableAssociation(association)) {
return;
}
Run Code Online (Sandbox Code Playgroud)
为什么是这样?这背后的原因是什么?
是因为设计要求我们将关联视为资源本身,如文档的这一部分所示?我可以通过带有Content-Type text/uri-list的PUT改变关系,但感觉不自然,需要额外的HTTP请求.
从 Spring 数据 REST 2.5.9.RELEASE 开始,关联不会在 PUT 请求上更新,而只会使用 PATCH 更新。
2.5.9.RELEASE 版本的变化 (2017-04-19)
DATAREST-1030 - PATCH 请求不能正确处理关联的链接。
关于此的其他链接:
DATAREST-1061:具有应用程序/json 媒体类型有效负载的 PUT 请求无法通过 URI 更新关联 @OneToOne
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |