1:N ์ ๊ด๊ณ์ฑ์ ๊ฐ์ง๊ณ ์๋ ํ ์ด๋ธ ๊ตฌ์กฐ์์ Mapper๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋ ค๊ณ ํ๋๋ฐ, ์ด๋, N์ ๊ด๊ณ์ฑ์ ๊ฐ์ง๊ณ ์๋ VO์์ Type Mismatch ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ ์๋ค. Mapper๊น์ง ๋๊ธฐ๊ณ ์๋ ํ๋ผ๋ฏธํฐ๋ ์ ์์ ์ผ๋ก ๋ค์ด์ค๊ณ ์๊ณ ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ๊ฒฐ๊ณผ๋ ์ ๋ํ๋ด๊ณ ์๋๋ฐ, N๊ด๊ณ์ฑ์ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋ง [nuread]๋ก ๋ํ๋๊ณ ์๋๊ฑฐ ๋ง๊ณ ๋ ์คํ๋ผ๋์ง resultMap์ ์๋ชป ๊ตฌ์ฑํ๋ค๋์ง ๋ฑ๋ฑ์ ์ด์๋ ์์๋ค.
java.lang.IllegalArgumentException: argument type mismatch
SpringFramework๋ฅผ ํ์ฉํ CRUD๋ฅผ ์งํํ๋ค๋ณด๋ฉด ๊ต์ฅํ ๋ง์ ์๋ฌ๋ค์ด ๋ฐ์ํ ์ ์๋ค. ๋๋ถ๋ถ ์์คํ ์ด ์๋ชป๋์๊ฐ ์๋๋ผ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ์์ค์ ๋ฌธ์ ๊ฐ ์๋ค! ์ฐ๋ฆฌ์ ์๊ฐ๋ฝ์ ํํ๊ณ ์ฐ๋ฆฌ๊ฐ ๋์น ์ผ์ค๋ฅผ ํํ์...
argument type mismatch ์๋ฌ๋ ํ์ธํด์ผํ ๋ถ๋ถ์ด ๋๊ฐ์ง ์ ๋๋ก ์ขํ์ง ์ ์๋ค. ๋ฌผ๋ก ๋ ๋ง์ ๊ฒ์ฆ ์ฒดํฌ ํฌ์ธํธ๊ฐ ์กด์ฌํ ์ ์์ง๋ง, ๋๋ถ๋ถ ์ด๋ฐ ๋๊ฐ์ง ์ ๋๋ฅผ ํ์ธํด๋ณด๋ฉด ์๋ฌ๋ฅผ ์์ ํ ์ ์๋ค.
์ฒซ๋ฒ์ฌ, ์๋ฐ๋น์ฆ ํด๋์ค ๊ฐ์ฒด(VO)์ ํ ์ด๋ธ ์ปฌ๋ผ ํ์ ์ ํ์ธ!
Mapper์์ ์กฐํํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ ์๋ฐ๋น์ฆ ํด๋์ค ๊ฐ์ฒด(VO๊ฐ์ฒด)์ ํ๋์ ํ์ , ๊ทธ๋ฆฌ๊ณ ์กฐํํ ํ ์ด๋ธ์ ์ปฌ๋ผ ํ์ ๋ ๊ฐ์ด ๋์กฐํด๋ณด๋ฉด์ ํ์ ์ ํ์ธํ๋ค. ๊ฐ๋ ๋ณด๋ฉด ํ ์ด๋ธ์ ์์ฑํ๊ณ ์ปฌ๋ผ์ ๋ฑ๋กํ ํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ๊ธฐ ์ํด ๋ง๋ VOํด๋์ค์ ํ์ ์ด ์ ๋ชป๋์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์๋ก ํ์ ์ด ๋ฌ๋ผ์ง๋ ์๊ฐ๋ถํฐ๋ ์ป์ด์จ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์๋ฐ๋น์ฆ ํด๋์ค ๊ฐ์ฒด์ธ VO์ ๋ฃ์ด์ผํ๋๋ฐ ํ์ ์ด ๋ง์ง ์์์ ๋ค์ด๊ฐ์ง ์๋ ์๋ฌ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
๋๋ฒ์ฌ, ์๋ฐ๋น์ฆ ํด๋์ค ๊ฐ์ฒด(VO)์ ๊ธฐ๋ณธ ์์ฑ์ ํ์ธ!
Mapper์์ ์กฐํํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ฐ์ดํฐ๋ฅผ type์ ์ค์ ๋์ด ์๋ ๊ฐ์ฒด์ ๋ณด์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋๋ค. ์ด๋, type์ ์ค์ ๋์ด ์๋ ๊ฐ์ฒด์ ๊ธฐ๋ณธ ์์ฑ์ ์ ๋ณด๋ฅผ ์ด์ฉํด์ ๋ด๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ์๊ณ ์ปค์คํ ์์ฑ์๋ง ์๋ค๋ฉด ์ปค์คํ ์์ฑ์๋ฅผ ์ด์ฉํด์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ปค์คํ ์์ฑ์ ๋ด์์ ๋ช ์ํ๊ณ ์๋ ์ค์ ์ ๋ง์ถฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ๋๋ฐ ์ด๋์ ํ๋์ ์กด์ฌํ์ง ์๊ณ ์ฌํ ๋ค๋ฅธ ํ์ ์ ํ๋๋ค์ด ๊ตฌ์ฑ๋์ด ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด type missmatch๊ฐ ๋ํ๋ ์ฌ์ง๋ฅผ ๋จ๊ฒจ๋๋๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ VO์์ ์ปค์คํ ์์ฑ์๋ฅผ ๋ง๋ค์๋ค๋ฉด ํํ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํจ๊ป ๋ง๋ค์ด ์ปค์คํ ์์ฑ์๋ก๋ง ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋๋ก ์ด์ด๋๋๊ฒ ์๋๋ผ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํตํด์๋ ๊ฐ์ฒด ์ ๋ณด๋ฅผ ๋ง๋ค์ด ์ค ์ ์๋๋ก ์ ๊ณตํด์ผํ๋ค.
์ ๋ฆฌํ์ง๋ฉด,
1. ์๋ฐ๋น์ฆ ํด๋์ค ๊ฐ์ฒด์ ํ ์ด๋ธ์ ๋ช ์๋ ์ปฌ๋ผ ํ์ ์ ๋น๊ตํ์ฌ ์ผ์นํ๋์ง ํ์ธ
2. ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ VO๊ฐ์ฒด์ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ๋ง๋ค์ด์ ธ ์๋์ง ํ์ธ
@Junesker