使用Pagable的春季应用程序始终从第2页返回相同的结果
我正在使用Spring来开发使用SQLite作为数据库的应用程序,但是在存储库的Findall(可打印Pagable)方法中实现分页时,我遇到了问题。
对于此实现,我正在使用Pagable,问题是,从第二页开始,结果始终是相同的。
在进行一些调试后,我注意到在SQL中输出限制和偏移子句切换。也就是说,想象我要每个页面1个结果,限制和偏移值是这样的:
第1页:
page = 0 |尺寸= 1->限制1偏移0
第2页:
page = 0 |尺寸= 1->限制1偏移1
第3页
page = 0 |尺寸= 1->限制2偏移1,
即,限制和偏移值被切换,因为第3页应该是:限制1偏移2
有人知道为什么会发生这种情况以及任何可能的解决方案?
I'm using spring to develop an application using sqlite as a database, but I'm having a problem implementing pagination in the repository's findAll(Pageable pageable) method.
For this implementation I'm using Pageable, and the problem is that, from the second page onwards, the result is always the same.
After some debugging I noticed that in the sql output the LIMIT and OFFSET clauses are switched. That is, imagining that I want 1 result per page, the LIMIT and OFFSET values are like this:
Page 1:
page=0 | size=1 -> LIMIT 1 OFFSET 0
Page 2:
page=0 | size=1 -> LIMIT 1 OFFSET 1
Page 3
page=0 | size=1 -> LIMIT 2 OFFSET 1
That is, the values of LIMIT and OFFSET are switched, as for the case of page 3 it should be: LIMIT 1 OFFSET 2
Does anyone know why this happens, and any possible solutions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我已经设法解决了这个问题。
问题在于使用有问题的自定义SQL方言。我更改了实现方法,以使用处理SQL方言的Maven依赖性,并解决了问题。
谢谢
I already managed to solve the problem.
The problem was in the use of a custom sql dialect that had a problem. I changed the implementation to use a maven dependency that handles sql dialect and it solved the problem.
Thank you