SQL์ Pageable์ ์ด์ฉํ์ฌ ๋ํ๋ด๊ธฐ
select * from luvket.luvkets order by status desc, created_at desc limit 0, 25;
์์ ๊ฐ์ SQL๋ฌธ์ Spring ์์ Pageable์ ์ด์ฉํ์ฌ ํํํ๋ค๋ฉด ์ด๋ ๊ฒ ๋ํ๋ผ ์ ์์ต๋๋ค.
1
2
3
4
5
6
7
8
9
|
@GetMapping("")
public LuvketResponse<List<LuvketDto>> search(@PageableDefault(size = 25)
@SortDefault.SortDefaults({
@SortDefault(sort = "status", direction = Sort.Direction.DESC),
@SortDefault(sort = "createdAt", direction = Sort.Direction.DESC)
})
Pageable pageable){
return luvketService.search(pageable);
}
|
cs |
PageableDefault
PageableDefault ์ ์๋ ๋ฌธ์ฅ์ฒ๋ผ
1
|
@PageableDefault(sort = "id", direction = Sort.Direction.DESC, size = 25) Pageable pageable
|
cs |
- page
- size
- sort
๋ฅผ ์ค์ ํ ์ ์์ง๋ง ์ด ๋ฐฉ๋ฒ์์๋ Sort๋ก ํ ๊ฐ์ง ์กฐ๊ฑด๋ฐ์ ์ ์ฉํ ์ ์์ต๋๋ค.
SortDefault
๊ทธ๋์ @PageableDefault ์์๋ page ์ size๋ง ์ค์ ํด๋๊ณ ,
@SortDefault ๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ ์ ๋ ฌ์กฐ๊ฑด์ ์ถ๊ฐํ๋ฉด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ผ ์ ์์ต๋๋ค.
1
2
3
4
|
@SortDefault.SortDefaults({
@SortDefault(sort = "status", direction = Sort.Direction.DESC),
@SortDefault(sort = "createdAt", direction = Sort.Direction.DESC)
})
|
cs |
๋ค๋ฅธ ๋ฐฉ๋ฒ: PageRequest
์ ๋ ฌ์ ๋ํ ์ ๋ณด๋ฅผ PageRequest ๊ฐ์ฒด์ ์ ๋ฌํ์ฌ Pageable ์ ์์ฑํ๊ณ repository.findALL( ) ๊ดํธ ์์ ํด๋น Pageable์ ๋ฃ์ด์ฃผ๋ฉด ํ์ด์ง๋ค์ด์ ๊ณผ ์ ๋ ฌ ๋ ๋ค ํ ์ ์์ต๋๋ค.
1 2 3 | Page<Product> allProductsSortedByName = productRepository.findAll(Sort.by("name")); Pageable sortedByPriceDescNameAsc = PageRequest.of(0, 5, Sort.by("price").descending().and(Sort.by("name"))); | cs |
'๐ > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA] ์ฆ์ ๋ก๋ฉ, ์ง์ฐ ๋ก๋ฉ | FetchType.EAGER, FetchType.LAZY (0) | 2021.08.31 |
---|---|
[Spring] DI(Dependency Injection) (0) | 2021.05.02 |
[Spring] PSA (Portable Service Abstraction) (0) | 2021.05.02 |
[Spring] AOP (0) | 2021.04.18 |
๋๊ธ