SpringBoot Paging処理方法
13433 ワード
SpringBootでは、JPAで簡単にページングできます.
サンプルソースは、
コントローラ側パラメータから受信した情報.
: @RequestParam :
フロントエンドに送信されたDtoフィールドにPagingコンテンツを追加!
PageResponse
サンプルソース:https://github.com/mooh2jj/todolist_backend.git
サンプルソースは、
TodoList-backend
ソースを使用します.Page情報を持つPageableオブジェクト
コントローラ側パラメータから受信した情報.
: @RequestParam :
pageNo(0부터 시작)
, pageSize
, sortBy
Pageable pageable = PageRequest.of(pageNo, pageSize, Sort.by(sortBy).descending);
Page<TodoEntity> todoPage = todoRepository.findAll(pageable);
処理ロジックのクリーンアップ(entity->Dto)
findAll(pagable); => Page<Entity> -> getContent(); ->List<Entity>
-> mapping(stream) -> List<Dto>
DTOに応答する理由を作成!(ページ情報以外にもたくさんあります)Page<Entity>
のcontent
をList<PostResponse>
に別処理することを忘れないでください!フロントエンドに送信されたDtoフィールドにPagingコンテンツを追加!
totalElements
totalPages
last
booleanインプリメンテーションソース
PageResponse
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PageResponse {
private List<TodoResponse> content;
private int pageNo;
private int pageSize;
private long totalElements;
private int totalPages;
private boolean last;
}
TodoController // Paging test
@GetMapping
public PageResponse readAllPaging(
@RequestParam(value = "pageNo", defaultValue = "0", required = false) int pageNo,
@RequestParam(value = "pageSize", defaultValue = "3", required = false) int pageSize,
@RequestParam(value = "sortBy", defaultValue = "id", required = false) String sortBy
) {
log.info("Read Paging All");
return todoService.searchAllPaging(pageNo, pageSize, sortBy);
}
TodoService @Override
public PageResponse searchAllPaging(int pageNo, int pageSize, String sortBy) {
// create Pageable instance
Pageable pageable = PageRequest.of(pageNo, pageSize, Sort.by(sortBy).descending());
Page<TodoEntity> todoPage = todoRepository.findAll(pageable);
// get content for page object
List<TodoEntity> listTodos = todoPage.getContent();
List<TodoResponse> content = listTodos.stream().map(TodoEntity -> mapToDto(TodoEntity)).collect(Collectors.toList());
return PageResponse.builder()
.content(content)
.pageNo(pageNo)
.pageSize(pageSize)
.totalElements(todoPage.getTotalElements())
.totalPages(todoPage.getTotalPages())
.last(todoPage.isLast())
.build();
}
postman結果値リファレンス
サンプルソース:https://github.com/mooh2jj/todolist_backend.git
Reference
この問題について(SpringBoot Paging処理方法), 我々は、より多くの情報をここで見つけました https://velog.io/@mooh2jj/SpringBoot-Paging-처리-방법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol