【发布时间】:2019-10-30 23:56:59
【问题描述】:
我在使用 Spring Data Rest 和 PATCH 请求添加到嵌入式列表时遇到了困难。我使用的是 MongoDB,所以这里没有 JPA 连接(ManyToOne 等),只是一个普通的旧常规嵌入式子类型列表。
我的豆子是这样的:
class Parent {
String name;
List<Child> children;
}
class Child {
String name;
}
我的请求如下所示:
curl -d '{"children": [ {"name": "bob"} ] }' -H "Content-Type: application/json" -X PATCH http://localhost:8080/api/parent/123
这样做的结果是所有子元素都被请求中的新元素替换,例如
old: [ 'tom', 'sally' ]
request: [ 'bob' ]
expected result: [ 'tom', 'sally', 'bob']
actual result: [ 'bob' ]
我已经浏览了 Spring 代码 (DomainObjectReader),但它似乎无法处理我的场景,但肯定这是一个非常简单的用例,有什么想法吗?我错过了什么明显的东西吗?
谢谢!
【问题讨论】:
-
这是一个非常简单的用例。如果您考虑一下,框架如何准确地确定您是要添加到集合中还是简单地替换它。只是一个想法。
标签: spring mongodb rest patch spring-data-rest