์ค๋ ์คํ๋ง ์๋ จ์ฃผ์ฐจ ์๋ฃ ๐
์ค์ต ์งํํ๋ฉด์ ๋๋ Entity ๋ฅผ ์์ฑ์๋ฅผ ๋ง๋ค๋ ๊ฒ์ ๋ณ๋ก ์ ํธํ์ง ์๊ณ , @Builder
ํจํด์ ์์ฑํ๋ ๊ฒ์ ๊ฐ์ฅ ์ข์ํจ! ๐ฅ
๊ทธ๋ฆฌ๊ณ RequestDto ์์ toEntity()
, ResponseDto ์์ of()
๋ก Entity -> dto, dto -> Entity ๋ฅผ ํด์ค๋ค!
public static ProductResponseDto of(Product product) {
return ProductResponseDto.builder()
.id(product.getId())
.title(product.getTitle())
.link(product.getLink())
.image(product.getImage())
.lprice(product.getLprice())
.myprice(product.getMyprice())
.productFolderList(Optional.ofNullable(product.getProductFolderList()).orElseGet(Collections::emptyList).stream().map(productFolder -> FolderResponseDto.of(productFolder.getFolder())).toList())
.build();
}
ํนํ ์ด ๋ถ๋ถ์์ ์ด๋ ค์์ด ๋ง์๋ฐ!
Product Entity๋ฅผ ProductResponseDto๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ธ๋ฐ,
๋ฌธ์ ๋ FolderList๋ฅผ ๋ฃ์ด์ฃผ๋ ๋ถ๋ถ!
๊ฐ์ ์ค ์ฝ๋์์๋
private List<FolderResponseDto> productFolderList = new ArrayList<>();
public ProductResponseDto(Product product) {
this.id = product.getId();
this.title = product.getTitle();
this.link = product.getLink();
this.image = product.getImage();
this.lprice = product.getLprice();
this.myprice = product.getMyprice();
for (ProductFolder productFolder : product.getProductFolderList()) {
productFolderList.add(new FolderResponseDto(productFolder.getFolder()));
}
}
๋ก ์ ์ฅํด์ฃผ๋๋ฐ, ๋ฌธ์ ๋ ๋์ of
ํจ์๊ฐ static ์ด๋ผ๋ ์ !!
๊ทธ๋์ productFolderList() ์์ ๊ฐ์ stream.map์ผ๋ก ๋ณํํด์ ๋ฃ์ด์ฃผ๋๋ก ํ๋๋ฐ,
๋๋ ค๋ณด๋ productFolder
๊ฐ์ด NULL
์ธ ๊ฒ์ด ๋ฌธ์ !!!
๊ทธ๋์ Optional
์ ์ด์ฉํ์ฌ null ์ฒ๋ฆฌ๋ฅผ ํด์คฌ๋ค
๊ทธ๋์ ํด๊ฒฐ!!!!~~!
'TIL๐ฅ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
23.12.04 TIL (0) | 2023.12.04 |
---|---|
23.11.30 TIL (0) | 2023.11.30 |
23.11.23 TIL (1) | 2023.11.23 |
23.11.22 TIL (1) | 2023.11.22 |
23.11.21 TIL (1) | 2023.11.21 |