Spring Data JPA์์๋ Pageable์ ํ์ฉํด ํ์ด์ง๋ฟ ์๋๋ผ ์ ๋ ฌ๊น์ง ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ Board ์ํฐํฐ์ seq ํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ฉด์ ํ์ด์ง ๋จ์ ์กฐํํ๋ ํ
์คํธ ์ฝ๋๋ฅผ ์๊ฐํฉ๋๋ค.
import org.junit.jupiter.api.Test;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
@Test
public void testFindByTitleContaining() {
Pageable paging = PageRequest.of(0, 5, Sort.Direction.DESC, "seq");
List<Board> boardList = boardRepo.findByTitleContaining("์ ๋ชฉ", paging);
System.out.println("๊ฒ์ ๊ฒฐ๊ณผ");
for (Board board : boardList) {
System.out.println(board.toString());
}
}
PageRequest.of(0, 5, Sort.Direction.DESC, "seq")
0 โ ์ฒซ ๋ฒ์งธ ํ์ด์ง (ํ์ด์ง ๋ฒํธ๋ 0๋ถํฐ ์์)5 โ ํ์ด์ง๋น ํญ๋ชฉ ์ (ํ ํ์ด์ง์ 5๊ฐ ๊ฒ์๊ธ)Sort.Direction.DESC โ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ"seq" โ ์ ๋ ฌ ๊ธฐ์ค ํ๋๋ช
์ฆ, seq ํ๋ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ๋ ๊ฒฐ๊ณผ ์ค์์ ์ฒซ ํ์ด์ง(0๋ฒ ํ์ด์ง)์ 5๊ฐ ํญ๋ชฉ์ ๊ฐ์ ธ์ค๋ ์ฟผ๋ฆฌ๊ฐ ์คํ๋ฉ๋๋ค.
๐ง ์ฐธ๊ณ :
seq๋Board์ํฐํฐ์ ํ๋์ด๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์์ ๊ณ ์ ํ ์์๋ฅผ ์๋ฏธํ๋ ์ปฌ๋ผ์ ๋๋ค. ์: ๊ฒ์๊ธ ๋ฒํธ, ๋ฑ๋ก ์์ ๋ฑ
๊ฒ์ ๊ฒฐ๊ณผ
Board(seq=200, title=ํ
์คํธ ์ ๋ชฉ200, ...)
Board(seq=199, title=ํ
์คํธ ์ ๋ชฉ199, ...)
Board(seq=198, title=ํ
์คํธ ์ ๋ชฉ198, ...)
...
PageRequest๋ ํ์ด์ง ์ฒ๋ฆฌ๋ฟ ์๋๋ผ ์ ๋ ฌ ์กฐ๊ฑด๊น์ง ํจ๊ป ์ค์ ํ ์ ์๋ ์ ์ฉํ ํด๋์ค์
๋๋ค.Sort.Direction.DESC ๋๋ Sort.Direction.ASC๋ฅผ ํตํด ์์ฝ๊ฒ ์ค๋ฆ์ฐจ์/๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ด ๊ฐ๋ฅํฉ๋๋ค."seq")๋ ๋ฐ๋์ ์ํฐํฐ ๋ด ์กด์ฌํ๋ ์ ํํ ํ๋๋ช
์ด์ด์ผ ํฉ๋๋ค.๋ค์ ๊ธ์์๋ ์ ๋ ฌ ํ๋๋ฅผ ๋ค์ค์ผ๋ก ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋, Page<T> ํ์
์ผ๋ก ๋ ๋ง์ ํ์ด์ง ์ ๋ณด๋ฅผ ๋ฐ๋ ๋ฐฉ๋ฒ๋ ์๊ฐํด๋ณผ๊ฒ์!
๊ถ๊ธํ ์ ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋๊ธ์ด๋ DM ์ฃผ์ธ์ :)