我目前正在构建一个REST API,我希望客户端可以轻松过滤特定实体的大多数属性。将QueryDSL与Spring Data REST(an example by Oliver Gierke)结合使用可以让我轻松达到我想要的90%,允许客户端通过组合引用属性的查询参数进行过滤(例如{{ 1}})。 (If you're using the same integration Oliver Gierke's answer to my previous question might also help.)
不幸的是,当使用QueryDSL提供的其他过滤器时,如/users?firstName=Dennis&lastName=Laumen
,这些过滤器似乎没有与Spring Data REST的分页功能集成。当firstName=Dennis&lastName=Laumen
收集资源返回忽略应用过滤条件的链接时(例如GET
而非http://localhost:8080/api/users?page=1&size=20
),分页链接。
总结一下,使用Spring Data REST和QueryDSL时是否可以显示正确的分页链接?如果是这样,怎么样?
答案 0 :(得分:0)
是的,我的spring数据小部件存储库
extends PagingAndSortingRepository<Widget, String>,QueryDslPredicateExecutor<Widget>,QuerydslBinderCustomizer<QWidget>
我可以在我的http请求中同时使用querydsl和page \ size参数,例如,
http://localhost:8080/widgets?securityType=XXX&settlementPriceCurrency=ABC&size=16
,并获得有效的分页链接:
"_links" : {
"first" : {
"href" : "http://localhost:8080/widgets?page=0&size=16"
},
"self" : {
"href" : "http://localhost:8080/widgets{&sort,projection}",
"templated" : true
},
"next" : {
"href" : "http://localhost:8080/widgets?page=1&size=16"
},
"last" : {
"href" : "http://localhost:8080/widgets?page=61&size=16"
},
"profile" : {
"href" : "http://localhost:8080/profile/widgets"
}
},
"page" : {
"size" : 16,
"totalElements" : 984,
"totalPages" : 62,
"number" : 0
}
使用Spring Data Rest 2.6.6.RELEASE和spring data commons 1.13.6