gpt4 book ai didi

Spring JPA - 如何使用 NativeQuery 创建 Pageable?

转载 作者:行者123 更新时间:2023-12-05 02:58:09 25 4
gpt4 key购买 nike

我尝试在 Spring Boot 应用程序中执行以下操作:创建一个 native 查询并将其分页,以便它可以从 @RestController 返回给定数量的元素的页面。

这是我的代码片段,其中 em 是 @PersistanceContext EntityManager,存储库方法如下,知道 queryString 是 native 查询:

Query searchQuery = em.createNativeQuery(this.queryString, MyEntity.class);
List<MyEntity> resultsList = searchQuery.getResultList();
return new PageImpl<>(resultsList, PageRequest.of(index,size), resultsList.size());

我的问题是返回的Page是完整查询结果的内容,不是PageRequest.of里面size参数的内容。

有没有人遇到过同样的问题并且可以给出一个关于如何对 nativeQuery 进行分页的工作示例?

谢谢你的帮助

最佳答案

您正在将 Spring Data JPA (Pageable) 与 JPA EntityManager 混合使用。你不能那样做。如果您已经在使用 native 查询,则只需将分页放入查询中即可。您可以使用数据库支持的内容,例如标准:

SELECT [a_bunch_of_columns] 
FROM dbo.[some_table]
ORDER BY [some_column_or_columns]
OFFSET @PageSize * (@PageNumber - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY;

关于Spring JPA - 如何使用 NativeQuery 创建 Pageable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59294194/

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