use*_*181 2 java hibernate spring-data-jpa spring-boot jhipster
我创建了自定义存储库并想要创建自定义本机查询:
public Page<Friend> findFriends(FriendCriteria friendCriteria, Pageable pageable)
Run Code Online (Sandbox Code Playgroud)
我如何适应 Pageable 对象并获取 Page<> 对象的结果?
我有类似的要求,但找不到任何直接的方法来做到这一点。这是我如何实现的代码片段。希望这会有所帮助。
public Page<Friend> findFriends(FriendCriteria friendCriteria, Pageable pageable){
//Find actual content from friendCriteria and call method below.
extractPage(pageable, <actual content>);
}
public static <T> Page<T> extractPage(Pageable page, List<T> contents) {
int startIndex = page.getPageNumber() == 0 ? page.getPageNumber() : page.getPageNumber() + page.getPageSize();
int toIndex = startIndex + page.getPageSize();
toIndex = toIndex > contents.size() ? contents.size() : toIndex;
final int total = contents.size();
List<T> filteredContents;
if (startIndex < contents.size()) {
filteredContents = contents.subList(startIndex, toIndex);
} else {
filteredContents = new ArrayList<>();
}
TotalSupplier totalSupplier = () -> {
return total;
};
return PageableExecutionUtils.getPage(filteredContents, gotoPage(page.getPageNumber(), page.getPageSize()),
totalSupplier);
}
private static PageRequest gotoPage(int number, int size) {
return new PageRequest(number, size);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6269 次 |
| 最近记录: |