Posts
Q&A
@Transactional์ ๋ถ์ด๋ ์์น๊ฐ ๊ถ๊ธํฉ๋๋ค. (Service, ServiceImpl..)
์คํ๋ง ๋น์ผ๋ก ์ด๋ค๊ฒ ๋ฑ๋ก๋๋์ง ์๊ฐํด๋ณด์๋ฉด ๋ ๊ฑฐ ๊ฐ์์.์ธํฐํ์ด์ค๋ ํ์ ์ ์ ์ ํ๋ ๊ฒ์ด๊ณ (DIP, OCP๋ฅผ ์ํด์..) ์ค์ ๋ก ์คํ๋ง์ ๋ฑ๋ก๋๋ ๋น ๊ฐ์ฒด๋ ๊ตฌํ์ฒด์ธ Impl์ ๋๋ค.์ํ๋์ ์คํ๋ง ๋ก๋๋งต์ ํ๋ฒ ๋ค์ด๋ณด์๋ฉด ์ดํด๊ฐ ๋์ค ๊ฒ ๊ฐ์ต๋๋ค.
- 0
- 1
- 356
Q&A
์๋ฐฉํฅ ๊ด๊ณ์์
(์ง๋ฌธํด์ฃผ์ ์ฝ๋๋ ์ค๋ฅ๊ฐ ๋ ๊ฒ ๊ฐ์๋ฐ.. ์ค๋ฅ ๋ก๊ทธ๋ ์๋์ค์๋์?) findMember.getTeam().setId(2L); findMember.setTeam(team2);
- 0
- 1
- 298
Q&A
์ฐ๊ด๊ด๊ณ ์ฃผ์ธ๊ณผ cascade๊ฐ ์์ถฉ๋๋ ์ํฉ์ ๋ํด์
์๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ์์ ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ ์ธ๋ํค๋ฅผ ๊ด๋ฆฌํ๊ณ , ์๋ ์ชฝ์ ์กฐํ๋ง ๊ฐ๋ฅํฉ๋๋ค.Parent์์ ์๋ฌด๋ฆฌ child๋ฅผ addํด๋ ์ธ๋ํค ๊ฐ์ ์ ์ฅ๋์ง ์์ต๋๋ค. ์์์ฑ ์ ์ด(cascade)๋ ํน์ ์ํฐํฐ์ ์์์ฑ(persist, remove, detach ๋ฑ๋ฑ..)์ ์์ ํ ๋ ์ฐ๊ด๋ ์ํฐํฐ๋ ๊ฐ์ด ์์ ํ๊ฒ ๋ค๋ ๋ป์ ๋๋ค. @OneToMany(mappedBy = "parent", cascade = CascadeType.PERSIST)์ ์ฝ๋๋ฅผ ๋ณด์๋ฉด ์ฐ๊ด๊ด๊ณ ์ฃผ์ธ์ Childํด๋์ค์ parent์ด๊ณ , Parentํด๋์ค๋ฅผ ์์ํํ ๋ Child๋ ๊ฐ์ด ์์ํ ํ๊ฒ ๋ค๋ ๋ป์ ๋๋ค. ์ฌ๋ ค์ฃผ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด child1, child2๊ฐ์ฒด(๊ฐ๊ฐ ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ ๋๋ค.)์ parent๋ฅผ setํด์ฃผ๋ฏ๋ก ์ธ๋ํค๊ฐ ์ ์ฅ๋๋ ๊ฒ์ด๋ฉฐ, parent๊ฐ์ฒด(์์์ฑ ์ ์ด)๋ฅผ ์์ํํ ๋ child1, child2๊ฐ์ฒด๊ฐ ๋ชจ๋ ์์ํ๋์ด ๊ฒฐ๊ณผ์ ์ผ๋ก DB์๋ ์ด 3๊ฐ์ ๋ฐ์ดํฐ(parent, child1, child2)๊ฐ INSERT๋ฉ๋๋ค. child1.setParent(parent); //์ฐ๊ด๊ด๊ณ ์ถ๊ฐ child2.setParent(parent); //์ฐ๊ด๊ด๊ณ ์ถ๊ฐ์ ์ฝ๋๋ฅผ ์ญ์ ํ์๋ฉด ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ ์ฐ๊ด๊ด๊ณ๊ฐ ์ธํ ๋์ง ์์ผ๋ฏ๋ก ์ธ๋ํค๊ฐ์ null๋ก ์ ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ผ์ค๊ฒ๋๋ค.
- 0
- 1
- 479