我正在使用Spring Data REST来暴露实体及其关系。我有两个实体之间的一对一关系,并尝试使用PUT和PATCH更新/更改关系。
我注意到Spring Data REST只允许您通过PATCH更新链接资源 - JPA映射的实体(OneToMany,ManyToOne等),这些实体也是AggregateRoots(具有存储库) - 而在PUT中被忽略。
可以在LinkedAssociationSkippingAssociationHandler类中看到这一点:
为什么会这样?这背后的原因是什么?
是因为设计希望我们像文档中的这部分所示那样将关联视为资源本身吗?我可以通过使用Content-Type text/uri-list进行PUT来更改关系,但感觉不自然并需要额外的HTTP请求。
我注意到Spring Data REST只允许您通过PATCH更新链接资源 - JPA映射的实体(OneToMany,ManyToOne等),这些实体也是AggregateRoots(具有存储库) - 而在PUT中被忽略。
可以在LinkedAssociationSkippingAssociationHandler类中看到这一点:
if (associationLinks.isLinkableAssociation(association)) {
return;
}
为什么会这样?这背后的原因是什么?
是因为设计希望我们像文档中的这部分所示那样将关联视为资源本身吗?我可以通过使用Content-Type text/uri-list进行PUT来更改关系,但感觉不自然并需要额外的HTTP请求。