Page๊น์ง ์๋ค๋๊ฑด... ๊ธฐ๋ณธ์ ์ธ CRUD๋ฅผ ์๊ณ ๊ณ์ ์ํ๋ก ์ดํดํ๊ณ ์์ฑํ๊ฒ ์ต๋๋ค!
ํ ์ผ : ๊ฐ๋จํ ๋ฆฌ์คํธ ๋ฐ์ดํฐ์ Page, Sort ๊ตฌํํ์ฌ API๋ฅผ ๊ตฌํํ๋ค.
Service
Entity์์ฒด๋ฅผ ๋ฐํํ๋๊ฑด ์ ๋๋ก ํ์ง ์๊ธฐ ๋๋ฌธ์ Response dto๋ฅผ ๋ง๋ค์ด์ ๋ฐํํ๊ธฐ๋ก ํฉ๋๋ค.
Repository์์ ๋ฐ์์จ Page UserEntity๋ฅผ Response์ ๋งตํํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐํํ ๋ ์์ฑ์์ stream์ ์ฌ์ฉํ์ฌ
๊ฐ๊ฐ ๋งตํ ํด์ค๋๋ค! ์ฌ๊ธฐ์ finAny().orElse("") ๋ user์ ์ด๋ฏธ์ง๊ฐ ํ์๋ ์๋๊ธฐ ๋๋ฌธ์ NPE์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ null์ผ ๊ฒฝ์ฐ String ํ์ ์ null์ ๋ฐํํ๊ฒ ํ์ต๋๋ค. ์ด๋ถ๋ถ์ ์ข๋ ์ฐพ์์ ์ ๋ฐ์ดํธ ํ๋๋ก ํ๊ฒ ์ต๋๋ค!
public Page<UserInfoResponse> findAllAuction(Pageable pageable) {
Page<UserEntity> userEntityPage = userRepository.findAll(pageable);
return userEntityPage.map(
user ->
new UserInfoResponse(
user.getName(),
user.getAge(),
auction.getProfileList().getProfileEntityList().stream()
.map(e -> e.getImagePath())
.findAny()
.orElse("null")));
}
Controller
Pageble์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๋๋ฐ Client Test ์์ ์ฒ๋ผ QueryParams์ ์ต์ ์ ์ฃผ๋ ๋ฐฉ์์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
@GetMapping("/user/list")
public Page<UserInfoResponse> findAllUser(Pageable pageable){
return userFindService.findAllUser(pageable);
}
Client Test
Postman /GET/ http://localhost:8080/user/list?page=0&size=5&sort=name,DESC
๋ฐํ ํ๋ Json
pageble์ ๋ณด์๋ฉด clinet์๊ฒ totalPages๊ฐ ๋ช๊ฐ๊ฐ ์๋์ง ๋ณด์ฌ์ค ์ ์๊ณ sort๊ฐ ๋์ด์๋์ง ํ์ธ๋ ๊ฐ๋ฅํ๋ค.
์ด๋ฐ์์ผ๋ก ๊ตฌํํ๋ฉด client์์๋ ์ข๋ ์ํํ๊ฒ ๊ฐ๋ฐํ ์ ์์๊ฑฐ ๊ฐ๋ค์!
{
"content": [
{
"name": "aejeong",
"age": "10",
"imagePath": "null"
},
{
"name": "jisu",
"age": "13",
"imagePath": "imagePath"
}
],
"pageable": {
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"offset": 0,
"pageNumber": 0,
"pageSize": 5,
"paged": true,
"unpaged": false
},
"last": true,
"totalPages": 1,
"totalElements": 2,
"size": 5,
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"number": 0,
"first": true,
"numberOfElements": 2,
"empty": false
}
'๐ WEB > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
4. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ์ฐ๊ด๊ด๊ณ (0) | 2021.05.14 |
---|---|
3. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ์ํฐํฐ ๋งคํ (0) | 2021.05.13 |
2. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๋ด๋ถ ๋์ ๋ฐฉ์ (0) | 2021.05.13 |
1. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ฐ๋จํ ์ค์ต (0) | 2021.05.13 |
0. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ (0) | 2021.05.11 |