๋จ์ผ ํ
์ด๋ธ ์ ๋ต์ ๋ํด์ ๊ถ๊ธํ๋ถ๋ถ์ด ์์ต๋๋ค.
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํน์ ํ๊ฐ์ง๋ง ๋ ์ง๋ฌธ๋๋ฆด๊ฒ ์๋๋ฐ์ ๋ถ๋ชจํ
์ด๋ธ๊ณผ ์์ํ
์ด๋ธ๊ฐ์ ๊ด๊ณ๋ฅผ ์์ํ
์ด๋ธ์์ ManyToOne์ผ๋ก ๋จ๋ฐํฅ์ผ๋ก๋ง ์ค์ ํ๊ณ ๋ถ๋ชจ์ PK ๊ฐ์ด Null์ด ํ์ฉ(FK๊ฐ NUll ํ์ฉ) ๋๋ ํ
์ด๋ธ์ผ๋ ๋ถ๋ชจ์ ํ
์ด๋ธ ๊ฐ์ ์ญ์ ํ ๊ฒฝ์ฐ ์์ํ
์ด๋ธ์์ ์ฐธ์กฐํ๊ณ ์๋ ๋ถ๋ชจ์๊ฐ์ null๋ก ๋ณ๊ฒฝํ๊ณ ์ถ์ต๋๋ค. ์ธํฐ๋ท์ผ๋ก ๊ฒ์ํด๋ณด๋ ํด๊ฒฐ์ฑ
์ผ๋ก ๋ถ๋ชจํ
์ด๋ธ ์ญ์ ํ ๋ ์ฐธ์กฐํ๊ณ ์๋ ์์ํ
์ด๋ธ์ ์กฐํํ์ฌ ์ผ์ผํ ๋ฐ๋ณต๋ฌธ์ ํตํด null์ ์ฒ๋ฆฌํ๋๋ผ๊ตฌ์ ์ด์๊ฐ์ ๋ฐฉ๋ฒ๋ง๊ณ ๋ถ๋ชจ์๊ฐ์ด delete๋ ๋ ์์์ด ์๋์ผ๋ก null ์ฒ๋ฆฌ๋๊ฒ ์๋์ผ๋ก ๋งตํํ๋๋ฐฉ๋ฒ์ด์์๊น์? DB์์ ์ง์ ์ธ๋ํค ์ค์ ์ OnDelete, OnUpdate์ ์ ์ฝ์กฐ๊ฑด์ผ๋ก cascade, set null ๋ฑ์ ํ๋๊ฒ์ด ๊ฐ๋ฅํ๋ฐ ์์๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์๋ ๋งตํํด์ค ์ ์์๊น์? ( ๋ถ์ ํ
์ด๋ธ๊ณผ ์ฌ์ํ
์ด๋ธ์ด ์์๋, ์ ์
์ฌ์์ ๊ฒฝ์ฐ ๋ถ์ํ
์ด๋ธ์์ฒด๊ฐ ์กด์ฌํ์ง์๊ธฐ๋๋ฌธ์ ์ฐธ์กฐ๊ฐ์์ด null๊ฐ์ ์ ์ฅํ๊ณ ๋ถ์์ด๋๊ฐ์ ๋ถ์๊ฐ ์ญ์ ๋์์๋ ํด๋น ๋ถ์์ ์ธ์๋ค์ null ์ฒ๋ฆฌ ํด์ฃผ์ ์ํจ์
๋๋ค.) @ManyToOne@OnDelete(action = OnDeleteAction.NO_ACTION)@JoinColumn(name ="post_idx")private Post post; public enum OnDeleteAction { /** * Take no action. The default. */ NO_ACTION, /** * Use cascade delete capabilities of the database foreign-key. */ CASCADE} ์์๊ฐ์ด OnDelete ์ด๋
ธํ
์ด์
์ผ๋ก NO_ACTION, CASCADE ๋ฐ์ ์กด์ฌํ์ง์์์ ์ง๋ฌธ๋๋ฆฝ๋๋ค.