๋๊ธ์ฐฝ์ ๋จผ์ ๋์์ธ ํด์ผ ํ๋ค.
w3school ์์ ๋ถํธ์คํธ๋ฉ์ ์ด์ฉํ์๋ค.
์ด๋ ๊ฒ ๋๊ธ์ฐฝ์ด ๋ง๋ค์ด์ก๊ณ , ์ด์ ๋๊ธ ๋ชฉ๋ก์ ๋ฟ๋ ค๋ณผ ์ฐจ๋ก์ด๋ค!!
Board ๊ฐ์ฒด๋ฅผ ๋ณด๋ฉด,
์ฌ๊ธฐ์ board ๊ฐ์ฒด๋ reply ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋ฐ๋ผ์, ์์ธ๋ณด๊ธฐ Controller์ Service์์ reply์ ๋ํด ์ถ๊ฐํ ๊ฒ์ด ์๋ค.
๋ฐ๋ผ์ Board ์์ ์๋ Reply๊ฐ EAGER ์ ๋ต์ ์ํด ๋ถ๋ฌ์งํ
๋,
์์ฒ๋ผ ๊ทธ๋ฅ ์ฌ์ฉํ๋ฉด ๋๋ค!!
๊ทธ๋ฌ๋ฉด Board ์์ ์๋ Reply ๋ค์ด ์ด๋ ๊ฒ ๋๊ธ ๋ฆฌ์คํธ๋ก ๋ถ๋ฌ์์ง๋ค!
ํ
์คํธ๋ก Board๋ฅผ find ํ๋ฉด, ๋ฌดํ์ฐธ์กฐ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ ์ด์ ๋ Board ๊ฐ์ฒด์์ Reply๋ฅผ ๊ฐ๊ณ ์๊ณ , Reply ๊ฐ์ฒด์์ Board๋ฅผ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. (์ฐ๊ด๊ด๊ณ ๋งคํ!!)
์์ฒ๋ผ /test/board/1
์ 1๋ฒ ๊ฒ์๋ฌผ์ ๋ค์ด๊ฐ๋ฉด ๋ฌดํ ์ฐธ์กฐ ๋ฐ์..
Board ๊ฐ์ฒด์์๋ Reply๋ฅผ ์ฐธ์กฐํด์ผ ํ์ง๋ง, Reply ๊ฐ์ฒด์์๋ Board ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ํ์๊ฐ ์๋ค.
์๋ํ๋ฉด, ๊ธ ์์ธ๋ณด๊ธฐ์ ๋ค์ด๊ฐ Board ๊ฐ์ฒด๋ฅผ ๋ถ๋ฌ์ค๋ฉด ๊ทธ ๊ธ์ ํด๋นํ๋ Reply๋ค์ด ๋ถ๋ฌ์์ ธ์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค!!
์ด๋ ๊ฒ Board ๊ฐ์ฒด์ @JsonIgnoreProperties ์ด๋ ธํ ์ด์ ์ ๊ฑธ์ด์ฃผ๋ฉด, Reply์์๋ Board ํธ์ถ์ด ๋์ง ์๋๋ค. ์ฆ, Reply ์์ Board ์ get ์ด ๋ฌด์๋๋ค.
Test ์ปจํธ๋กค๋ฌ์์ Board ๊ฐ์ฒด๋ผ๋ Data๋ฅผ ๋ฆฌํดํ์์ผ๋ MessageConverter ๊ฐ ์๋ํ์ฌ json์ผ๋ก ๋ฆฌํด ๋์๊ณ , ๋ฌดํ ์ฐธ์กฐ๊ฐ ์๋ Board์ Reply๋ง ๋ถ๋ฌ์์ง๋ค.
๋ค์ ์์ธํ ๋ฏ์ด๋ณด๋ฉด,
Board ๊ฐ์ฒด ์ ๋ณด์ธ๋ฐ, ํ๋์ ์ ์ด Board ๊ฐ์ฒด์ ํ๋์ด๋ค.
Board ๊ฐ์ฒด๋ User๊ณผ Reply๋ฅผ EAGER ์ ๋ต์ผ๋ก ๊ฐ์ด ๋ถ๋ฌ์ค๋ฏ๋ก, ๋นจ๊ฐ์ ๋ฐ์ค ๋ถ๋ถ์ ๋ณด๋ฉด User ๊ฐ์ฒด์ Reply ๊ฐ์ฒด๊ฐ ๋ถ๋ฌ์์ง ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ํ User ๊ฐ์ฒด๋ก ๋ค์ด๊ฐ๋ฉด, User ๊ฐ์ฒด๋ ์ฐธ์กฐํ๊ณ ์๋ ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ์์ผ๋ฏ๋ก ๋ณธ์ธ์ ํ๋ ๊ฐ๋ค๋ง ๋ถ๋ฌ์ค๊ณ ,
Reply ๊ฐ์ฒด๋ก ๋ค์ด๊ฐ๋ฉด, Reply ๊ฐ์ฒด๋ User ๊ฐ์ฒด์ Board ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ณ ์์ง๋ง Board ๊ฐ์ฒด๋ ๋ด๊ฐ ์์์ @JsonIgnoreProperties ์ด๋ ธํ ์ด์ ์ผ๋ก ์ฐธ์กฐ๋ฅผ ๋ง์์ผ๋ฏ๋ก User ๋ง(๋ ธ๋์) ๋ถ๋ฌ์ค๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ฆ, Board ๊ฐ์ฒด์ Reply ํ๋์ @JsonIgnoreProperties ์ด๋ ธํ ์ด์ ์ ๋ถ์์ผ๋ฏ๋ก, Board๋ฅผ ํตํด์ Reply(replys)๋ฅผ ๋ฝ์ ๋๋ Reply ์์์ Board ๋ฅผ json์ผ๋ก ํ์ฑํ์ง ์๋๋ค. (ํ์ฑ(๋ณํ)ํ๋ฉด ๋ฌดํ์ฐธ์กฐ๊ฐ ์ผ์ด๋๊ธฐ ๋๋ฌธ)