E R R O R/Spring Error

[Spring Error] ์‹ฌ๊ฐ: Servlet.service() for servlet [appServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflect..

Junesker 2024. 4. 11. 12:34
๋ฐ˜์‘ํ˜•

 

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


 

๋ฐ˜์‘ํ˜•