DTO ํ๋ผ๋ฏธํฐ ๋ฐฉ์
์ง๋ฌธ DTO ํ๋ผ๋ฏธํฐ ๋ฐฉ์ ๊นํ์ 2020.08.12 PM 15:546 ์๋
ํ์ธ์ ์ํ๋, ํญ์ ์ข์ ๊ฐ์๋ฅผ ๋ง๋ค์ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค! ์ด๋ฒ๊ฐ์๋ฅผ ๋ณด๋ค ์๋ฌธ์ ์ด ๋ค์๋๋ฐ, ์ด์ ๊ฐ์์์ DTO ์์ฑ์ ํ๋ผ๋ฏธํฐ์ ์ํฐํฐ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ ๋ฐฉ์์ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ ๋ง์์ ๋ค์๋ ๊ธฐ์ต์ด ์์ต๋๋ค. ์ดํ์ ํ์ฅ์ฑ, ๋ณ๋์ฑ์ ์๊ฐํ์๋ ์ด ๋ฐฉ์์ด ์ ๋ง ์ต๊ณ ๋ผ๊ณ ์๊ฐ ํ์๋๋ฐ์, ๊ฐ์ด ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ํ์์ด DTO ์์ฑ์ ํ๋ผ๋ฏธํฐ์ ์ํฐํฐ ์์ฒด๋ฅผ ๋ฃ๋ ๋ฐฉ์์ด ์คํ๋ ค DTO๋ฅผ ๋ค์ด๊ฐ๋ด์ผ ๋ด๋ถ์์ฑ์ ์๊ธฐ๋๋ฌธ์ ๊ฐ๋
์ฑ์ด ๋จ์ด์ง์ง ์๋๋๋ ์๊ธฐ๋ฅผ ํ์์ต๋๋ค. ์๋ก ์ด ๊ธธ์๋ค์, ํ๋ก์ ์
์ ์์ฑ์ ๋ฐฉ์์์ ์์ฑ์ ํ๋ผ๋ฏธํฐ์ ์ํฐํฐ ์์ฒด๋ฅผ ๋ฃ๋๊ฒ๊ณผ ์ํฐํฐ์ ์์ฑ์ ๋ฃ๋๊ฒ ์ค ์ด๋ ๊ฒ์ด ์ค๋ฌด์ ๋ ์์ฐ์ผ๊น์..? ํน์๋ชฐ๋ผ ์ฝ๋ ๋จ๊น๋๋ค! @Testpublic void findDtoByConstructor(){ List result = queryFactory .select(Projections.constructor(MemberDto.class, member.username, member.age)) .from(member) .fetch(); for (MemberDto memberDto : result) { System.out.println("memberDto = " + memberDto); }}@Testpublic void findUserDtoByConstructor(){ List result = queryFactory .select(Projections.constructor(UserDto.class, member)) .from(member) .fetch(); for (UserDto userDto : result) { System.out.println("memberDto = " + userDto); }} 65 (์ฌ์ง) ๊น์ํ2020.08.12 PM 22:42 ์๋
ํ์ธ์. ๊นํ์ ๋^^ ์ข์ ์ง๋ฌธ์
๋๋ค. DTO ์์ฑ์ ํ๋ผ๋ฏธํฐ์ ์ํฐํฐ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ ๋ฐฉ์์ ์ค๊ณ์ ๋ฌธ์ ๋ ์์ต๋๋ค. ๋ค๋ง! ์ํฐํฐ๋ฅผ ๋จผ์ ์กฐํํด์ ์ดํ์ DTO๋ก ๋ณํํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ ๊ฒ ํด๋ ๋ฉ๋๋ค. ์๋ํ๋ฉด DTO๋ ์ํฐํฐ๋ฅผ ์์กดํด๋ ์ค๊ณ์ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ด์ง์. ๊ทธ๋ฐ๋ฐ! ์ํฐํฐ๋ฅผ ๋จผ์ ์กฐํํ์ง ์๊ณ , ๋ฐ๋ก DTO๋ก ์กฐํํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ ๊ฒ ํ๋ ๊ฒ์ด ์ข์ง ์์ต๋๋ค. ์ฌ๊ธฐ์๋ 2๊ฐ์ง ์ด์ ๊ฐ ์์ต๋๋ค. 1. DTO๋ก ์ง์ ์กฐํํ๋ ์ด์ ๋ ์ํฐํฐ๋ฅผ ๋ฌด์ํ๊ณ , ์กฐํ์ฉ ๋ชจ๋ธ์ ๋ฐ๋ก ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์
๋๋ค. ๋ฐ๋ผ์ ์ค๊ฐ์ ๋ฒ๊ฑฐ๋กญ๊ฒ ์ํฐํฐ๋ฅผ ๋ง๋ค ์ด์ ๊ฐ ์์ต๋๋ค. 2. ์ด๊ฒ์ ์ค๊ณ์์ ํฐ ๋ฌธ์ ๋ ์์ง๋ง, ์ฑ๋ฅ์์ ์ฐจ์ด๊ฐ ๋ฉ๋๋ค. ์์์ ์ฒซ๋ฒ์งธ๋ SQL select ์ฟผ๋ฆฌ๊ฐ username, age ๋ ํ๋๋ง ์กฐํํฉ๋๋ค. ๋ฐ๋ฉด์ ๋๋ฒ์งธ๋ SQL ์ฟผ๋ฆฌ๊ฐ member์ ๋ชจ๋ ํ๋๋ฅผ ๋ค ์กฐํํฉ๋๋ค. ๊ฒฐ๊ตญ ๋ฆฌํฌ์งํ ๋ฆฌ ๊ณ์ธต์์ DTO๋ฅผ ๋ฐ๋ก ์กฐํํ ๋๋ ์ํฐํฐ๋ฅผ ๊ฑฐ์น์ง ์๋ ๊ฒ์ด ๋ ๋์ ๋ฐฉ๋ฒ์
๋๋ค. ๋ค๋ง ๋ฆฌํฌ์งํ ๋ฆฌ ๊ณ์ธต์์ ์ํฐํฐ๋ฅผ ์กฐํํ๊ณ , ๊ทธ ์ํฐํฐ๋ฅผ ์ด๋์ ๊ฐ DTO๋ก ๋ณํํ ๋๋ ์ด๋ฏธ ์ํฐํฐ๋ฅผ ์กฐํํ ์ํฉ์ด๊ธฐ ๋๋ฌธ์ ์ด๋๋ DTO์ ์์ฑ์ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ฉํ์๋ ๋ฐฉ๋ฒ๋ ๊ด์ฐฎ์ต๋๋ค. ๋์์ด ๋์
จ๊ธธ ๋ฐ๋์^^ ์ข์์(7)๋๊ธ ๋ฌ๊ธฐ (์ฌ์ง) ๊นํ์ 2020.08.13 PM 13:39 ๊ถ๊ธ์ฆ์ด ํ๋ฒ์ ํด๊ฒฐ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค! ์ข์์(2)๋๊ธ ๋ฌ๊ธฐ (์ฌ์ง) ๊น์ํ2020.08.13 PM 20:57 ๋ค ์ฆ๊ฑฐ์ด ์ฝ๋ฉ์ํ ๋์ธ์^^!