pagenation2 [JPA] ์ปค์ ๊ธฐ๋ฐ pagenation ๊ตฌํํ๊ธฐ ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ Cursor ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ์๋ตํด์ค ๋ง์ง๋ง ๋ฐ์ดํฐ ๊ธฐ์ค์ผ๋ก ๋ค์ n๊ฐ ์์ฒญ/์๋ต offset ๊ธฐ๋ฐ ์ฟผ๋ฆฌ๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๋ฉด SELECT * FROM items WHERE ์กฐ๊ฑด๋ฌธ ORDER BY id DESC OFFSET ํ์ด์ง๋ฒํธ LIMIT ํ์ด์ง์ฌ์ด์ฆ cursor ๊ธฐ๋ฐ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค. SELECT * FROM items WHERE ์กฐ๊ฑด๋ฌธ AND id < ๋ง์ง๋ง์กฐํ_id ORDER BY id DESC LIMIT ํ์ด์ง์ฌ์ด์ฆ ์ง์ ์กฐํ ๊ฒฐ๊ณผ์ ๋ง์ง๋ง ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋ก ๋ค์ด๊ฐ๋๋ฐ SQL ํค์๋๊ฐ ์๋ ๊ณ ์ ๋ ์กฐ๊ฑด๋ฌธ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ๋๋ฌธ์ ์ ์ ์ฟผ๋ฆฌ๋ก์์ ํ๊ณ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. (๋ฌผ๋ก ๋์ ์ฟผ๋ฆฌ์ธ QueryDSL์ ์ฌ์ฉํ๋ฉด ๋๋ค.) controller /** * ๊ฒ์๋ฌผ page .. 2023. 3. 1. [JPA] ์คํ์ ๊ธฐ๋ฐ Pagenation ๊ตฌํํ๊ธฐ Spring Data JPA์์๋ Pagination์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก Pageable ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ๋ค. ์คํ์ ๊ธฐ๋ฐ Pagenation DB์ offset์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ‘ํ์ด์ง’ ๋จ์๋ก ๊ตฌ๋ถํ์ฌ ์์ฒญ/์๋ต ํ๋ค. controller /** * ๊ฒ์๋ฌผ page ์กฐํ * * @param pageable * @return Page */ @GetMapping(produces = APPLICATION_JSON_VALUE) public ApiResponse getPosts(@PageableDefault(sort = "id", direction = Sort.Direction.DESC) Pageable pageable) { Page pages = postService.findAll(pageable); ret.. 2023. 3. 1. ์ด์ 1 ๋ค์