gpt4 book ai didi

spring - Spring Data Rest 2.1 中的子资源分页

转载 作者:行者123 更新时间:2023-12-04 20:06:32 25 4
gpt4 key购买 nike

我使用带有默认配置的 Spring Data Rest 2.1.1 Release。考虑以下资源:

GET /communities/MyCommunity

{
"creationDate": "2014-07-16T06:22:37.153+0000",
"name": "GroupeSEB",
"_links": {
"self": {
"href": "http://localhost:8080/api/communities/GroupeSEB"
},
"posts": {
"href": "http://localhost:8080/api/communities/GroupeSEB/posts"
}
}
}

当我获得“帖子”子资源时:
GET /communities/MyCommunity/posts

{
"_embedded": {
"posts": [
{
"creationDate": "2014-07-09T13:09:14.535+0000",
"id": "53bd3efae4b012818368c549",
"_links": {
"self": {
"href": "http://localhost:8080/api/posts/53bd3efae4b012818368c549"
}
}
}
]
}
}

没有启用分页。由于我的父资源可以聚合大量帖子(其子资源),我如何为每个子资源启用分页?

最佳答案

答案很简单:你不能。理由如下:

关联资源表示一个主要实体与一个或多个其他实体之间的关联。因此,为了呈现这些资源,我们查找主要实体并仅访问该属性。这意味着,由于整个机制与存储无关,因此无需使用存储库,也无法应用位置分页。我们在实体实例上操作关联加载的机制是高度存储特定的。

因此,如果您的域模型中已经有对象关联,那么您就完全受制于商店处理关联的方式。因此,即使您应用了分页,您也必须首先读取所有相关对象以获取它们的 id。

作为一种解决方法,您可以只使用 id 并在该路径上手动公开资源,该路径将使用 id 和关联实体存储库上的专用查询方法。

关于spring - Spring Data Rest 2.1 中的子资源分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24775583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com