๋ฐ์ํ
์ฒจ๋ถํ์ผ์ 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์ด๋ฉด ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์์ → ๋ฆฌ์คํธ๋ ๊น๋ํ๊ฒ ๋น ๋ฆฌ์คํธ๋ก ์ ์ง
๋ฐ์ํ