【发布时间】:2018-01-08 14:12:25
【问题描述】:
我正在使用 Spring Data REST 来公开我的实体及其关系。我在两个实体之间有 OneToOne 关系,我正在尝试更新/更改与 PUT 和 PATCH 的关系。
我注意到 Spring Data REST 仅允许您更新链接资源 - JPA 映射的实体(OneToMany、ManyToOne 等)也是 AggregateRoots(具有存储库) - 通过 PATCH 并被 PUT 忽略。
这可以在LinkedAssociationSkippingAssociationHandler 类中看到:
if (associationLinks.isLinkableAssociation(association)) {
return;
}
这是为什么?这背后的原因是什么?
是否因为设计希望我们将关联视为资源本身,如 this part of the documentation 中所见?我可以通过 PUT 与 Content-Type text/uri-list 更改关系,但感觉不自然,需要额外的 HTTP 请求。
【问题讨论】:
标签: spring spring-data spring-data-jpa spring-data-rest spring-hateoas