BoardRepositoryPagingTests.java - 글 목록
페이지 정보
본문
package web.repository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import lombok.extern.log4j.Log4j2;
import web.domain.Board;
@SpringBootTest
@Log4j2
public class BoardRepositoryPagingTests {
@Autowired
private BoardRepository boardRepository;
//@Test
public void testPaging() {
//1 페이지 - 페이지당 출력 게시물 수 : 10
Pageable pageable = PageRequest.of(0, 10);
Page<Board> result = boardRepository.findAll(pageable);
System.out.println("========== List Start ==========");
System.out.println("결과:"+result);
System.out.println("총 게시물 수:"+result.getTotalElements());
System.out.println("총 페이지 수:"+result.getTotalPages());
System.out.println("현재 페이지 넘버:"+result.getNumber()); //0
System.out.println("출력 게시물 수:"+result.getSize()); //10
System.out.println("시작이 0인지 여부:"+result.isFirst());
System.out.println("이전 페이지 존재 여부:"+result.hasPrevious());
System.out.println("다음 페이지 존재 여부:"+result.hasNext());
for(Board b : result.getContent()) {
//실제 페이지의 데이터를 처리하는 것은 getContent()를 이용해서 List<엔티티 타입>으로 처리 또는
//Stream<엔티티 타입>을 반환하는 get()을 이용할 수 있다.
System.out.println(b);
}
System.out.println("========== List End ==========");
}
//@Test
public void testPaging2() {
//order by bno desc
Sort sort1 = Sort.by("bno").descending();
Pageable pageable = PageRequest.of(0, 10, sort1);
Page<Board> result = boardRepository.findAll(pageable);
//Stream<엔티티 타입>을 반환하는 get()을 이용
result.get().forEach(board -> {
System.out.println(board);
});
}
//@Test
public void testPaging3() {
//정렬 다중 조건 처리
Sort sort1 = Sort.by("bno").descending();
Sort sort2 = Sort.by("title").ascending();
Sort sortAll = sort1.and(sort2);
//and()를 이용해서 여러 개의 조건을 지정할 수 있다.
Pageable pageable = PageRequest.of(0, 10, sortAll);
Page<Board> result = boardRepository.findAll(pageable);
//Stream<엔티티 타입>을 반환하는 get()을 이용
result.get().forEach(board -> {
System.out.println(board);
});
}
}
- 이전글■ 페이징/정렬 처리하기 24.06.15
- 다음글● BoardRepositoryTest - ( CRUD ) 24.06.14
댓글목록
등록된 댓글이 없습니다.