๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

์ฒจ๋ถ€ํŒŒ์ผ์„ LEFT JOIN์œผ๋กœ ์กฐํšŒํ•  ๋•Œ, ํŒŒ์ผ์ด ์—†๋Š”๋ฐ๋„ files ๋ฆฌ์ŠคํŠธ์— ๋นˆ ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด์™€ 0์ด๋‚˜ null ๊ฐ’์ด ๋„˜์–ด์˜ค๋Š” ํ˜„์ƒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ฐพ์•„๋ณด๋˜ ์ค‘ MyBatis์—์„œ <collection> ํƒœ๊ทธ์— notNullColumn ์†์„ฑ์„ ์ง€์ •ํ•˜๋ฉด,

ํ•ด๋‹น ์ปฌ๋Ÿผ์ด null์ผ ๋•Œ๋Š” ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค๋Š”๊ฑธ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


์ฝ”๋“œ ์˜ˆ์‹œ

<collection property="files"
            ofType="BoardFileDTO"
            notNullColumn="fileId">
    <id property="fileId" column="fileId"/>
    <result property="originalName" column="originalName"/>
</collection>

๋™์ž‘์›๋ฆฌ

  • notNullColumn="fileId" → fileId ์ปฌ๋Ÿผ ๊ฐ’์ด null์ผ ๊ฒฝ์šฐ
    → MyBatis๋Š” BoardFileDTO ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์Œ
    → ๊ฒฐ๊ณผ์ ์œผ๋กœ files ๋ฆฌ์ŠคํŠธ์— ์•„๋ฌด ๊ฐ์ฒด๋„ ์ถ”๊ฐ€๋˜์ง€ ์•Š์Œ

์ฆ‰, ์ฒจ๋ถ€ํŒŒ์ผ์ด ์—†์œผ๋ฉด files = [] (๋นˆ ๋ฆฌ์ŠคํŠธ)๋กœ ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ณผ ๋น„๊ต

์ˆ˜์ • ์ „

files = [ BoardFileDTO(fileId=null, originalName=null) ]

์ˆ˜์ • ํ›„

files = []

 

 

  • ์›์ธ: LEFT JOIN ์“ธ ๋•Œ ๋นˆ ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์ด์œ  → null์ด ๋งคํ•‘๋˜๋”๋ผ๋„ MyBatis๊ฐ€ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ฆ
  • ํ•ด๊ฒฐ์ฑ… → <collection notNullColumn="์ปฌ๋Ÿผ๋ช…"> ์ง€์ •
  • ํšจ๊ณผ:์ปฌ๋Ÿผ ๊ฐ’์ด null์ด๋ฉด ์•„์˜ˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ → ๋ฆฌ์ŠคํŠธ๋Š” ๊น”๋”ํ•˜๊ฒŒ ๋นˆ ๋ฆฌ์ŠคํŠธ๋กœ ์œ ์ง€

 

๋ฐ˜์‘ํ˜•