2

我有父对象和嵌套对象。我可以获得嵌套列表,使用GET /parent/{parentId}/nested但我不能成功发布/放置它。在 POST 结果中,我得到 HTTP 204,并且父对象有空的嵌套对象列表。

在日志中,我看到 Hibernate 没有在 DB 中插入任何内容。在调试期间,我看到用于反现实化的 Jackson Object Mapper 将“ org.springframework.hateoas.Resources<java.lang.Object>”作为 JavaType。

这是我的 POST 的真实示例: curl 'http://localhost:8000/api/users/402880e554b8f7960154b8f7adbc0000/orders/' -i -X POST -H 'Authorization: Basic OLOLO==' -H 'Accept: application/json' -H 'deviceCurrencyCode: USD' -H 'Content-Type: application/json; charset=UTF-8' -d '{"orderPrice": 0,"tax": 0,"shippingCost": 0,"credits": 0,"addresses": [{"firstName": "Figli","lastName": "Migli","zipCode": "5555","city": "Riga","country": "Tlmltr","phone": "7777","address": "Adddr"}],"status": "status"}'

我知道这是可能的POST /nested '{"parent":"/link/to/parent"}'。但是,如果这是通过父对象获取嵌套对象的方法,为什么我不能以这种方式发布/放置/修补它们?我检查了,它是 RESTfull 的,而且似乎是。

4

1 回答 1

5

在 spring data rest 文档中有一个“关联资源”部分,它告诉你在这个资源上什么是可能的。并且不可能创建一个新孩子并将其关联。

我不知道这是为什么。

获得此行为的唯一方法(我知道)是实现一个为您执行此操作的自定义控制器。(确保您不要@RequestMapping在自定义控制器上使用类级别的注释,以免覆盖比您想要的更多的弹簧数据休息功能)

于 2016-05-19T12:43:54.170 回答