加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Spring Data Rest 2.1中的Paginate子资源

发布时间:2020-12-15 01:44:31 所属栏目:大数据 来源:网络整理
导读:我使用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"

我使用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和关联实体的存储库上的专用查询方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读