๊น์ํ๋์ ๊ฐ์๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค.
์๋ฐฉํฅ ๋งคํ

mappedBy
- mappedBy = JPA์ ๋ฉํ๋ถ๊ดด ๋์ด๋์ ํด๋นํ๋ค..!
- mappedBy๋ ์ฒ์์ ์ดํดํ๊ธฐ ์ด๋ ต๋ค.
- ๊ฐ์ฒด์ ํ ์ด๋ธ๊ฐ ์ฐ๊ด๊ด๊ณ๋ฅผ ๋งบ๋ ์ฐจ์ด๋ฅผ ์ดํดํด์ผํ๋ค.
๊ฐ์ฒด์ ํ ์ด๋ธ์ด ๊ด๊ณ๋ฅผ ๋งบ๋ ์ฐฝ
๊ฐ์ฒด ์ฐ๊ด๊ด๊ณ = 2๊ฐ
- ํ์ > ํ ์ฐ๊ด๊ด๊ณ 1๊ฐ(๋จ๋ฐฉํฅ)
- ํ > ํ์ ์ฐ๊ด๊ด๊ณ 1๊ฐ(๋จ๋ฐฉํฅ)
ํ ์ด๋ธ ์ฐ๊ด๊ด๊ณ = 1๊ฐ
- ํ์ <-> ํ์ ์ฐ๊ด๊ด๊ณ 1๊ฐ(์๋ฐฉํฅ)
๊ฐ์ฒด์ ์๋ฐฉํฅ ๊ด๊ณ
- ๊ฐ์ฒด์ ์๋ฐฉํฅ ๊ด๊ณ๋ ์ฌ์ค ์๋ฐฉํฅ ๊ด๊ณ๊ฐ ์๋๋ผ ์๋ก๋ค๋ฅธ ๋ฐฉํฅ๊ด๊ณ 2๊ฐ๋ค
- ๊ฐ์ฒด๋ฅผ ์๋ฐฉํฅ์ผ๋ก ์ฐธ์กฐํ๋ ค๋ฉด ๋จ๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ๋ฅผ 2๊ฐ ๋ง๋ค์ด์ผํ๋ค.
class A { B b; // a.getB(); } class B { A a; // b.getA(); }
ํ ์ด๋ธ์ ์๋ฐฉํฅ ๊ด๊ณ
- ํ ์ด๋ธ์ ์ธ๋ํค ํ๋๋ก ์กฐ์ธ์ ํตํด ๋ ํ ์ด๋ธ ์ฐ๊ด๊ด๊ณ๋ฅผ ๊ด๋ฆฌํ๋ค.
์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ(Owner)
์๋ฐฉํฅ ๋งคํ ๊ท์น
- ๊ฐ์ฒด์ ๋ ๊ด๊ณ์ค ํ๋๋ฅผ ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ผ๋ก ์ง์ ํ๋ค.
- ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ๋ง์ด ์ธ๋ ํค๋ฅผ ๊ด๋ฆฌํ๋ค.
- ์ฃผ์ธ์ด ์๋์ชฝ์ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅํ๋ค.
- ์ฃผ์ธ์ mappedBy ์์ฑ ์ฌ์ฉX
- ์ฃผ์ธ์ด ์๋๋ฉด mappedBy ์์ฑ์ผ๋ก ์ฃผ์ธ ์ง์
๋๊ตฌ๋ฅผ ์ฃผ์ธ์ผ๋ก ํด์ผํ ๊น?
์ธ๋ํค๋ฅผ ์ฃผ์ธ์ผ๋ก ์ง์ ํ๋ผ.
์๋ฐฉํฅ ๋งคํ ์ ๊ฐ์ฅ ๋ง์ดํ๋ ์ค์
- ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ ๊ฐ์ ์ ๋ ฅํ์ง ์์..
์์ ๊ฐ์ฒด ์ํ๋ฅผ ๊ณ ๋ คํด์ ํญ์ ์์ชฝ ๊ฐ์ ๊ฐ์ ์ค์ ํ์
- ์ฐ๊ด๊ด๊ณ์ ํธ์ ๋ฉ์๋๋ฅผ ์์ฑํ์.
- ์๋ฐฉํฅ ๋งคํ์ ๋ฌดํ ๋ฃจํ๋ฅผ ์กฐ์ฌํ์.
toString, lombok, JSON ์์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ
์๋ฐฉํฅ ๋งคํ ์ ๋ฆฌ
- ๋จ๋ฐฉํฅ ๋งคํ๋ง์ผ๋ก๋ ์ด๋ฏธ ์ฐ๊ด๊ด๊ณ ๋งคํ์ ์๋ฃ์ด๋ค.
- ์๋ฐฉํฅ ๋งคํ์ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์กฐํ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๊ฒ ๋ฟ์ด๋ค.
- JPQL์์ ์ญ๋ฐฉํฅ์ผ๋ก ํ์ํ ์ผ์ด ๋ง๋ค.
- ๋จ๋ฐฉํฅ ๋งคํ์ ์ ํ๊ณ ์๋ฐฉํฅ์ ํ์ํ ๋ ์ถ๊ฐํด๋ ๋๋ค.
์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ ์ ํ๋ ๊ธฐ์ค
- ๋น์ฆ๋์ค ๋ก์ง์ ๊ธฐ์ค์ผ๋ก ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ ์ ํํ๋ฉด ์๋๋ค.
- ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ ์ธ๋ ํค์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํด์ผํ๋ค.