JPA๋ update ๋ฉ์๋๋ฅผ ๋ฐ๋ก ๊ตฌํํ์ง ์๊ณ save ๋ฉ์๋๋ฅผ ํตํด ์ ์ฅ๊ณผ ๋ณ๊ฒฝ์ ๋ํ ๊ธฐ๋ฅ์ ํ๋ฒ์ ์ ๊ณตํ๊ณ ์์
๋ํฐ ์ฒดํน(Dirty Checking) ์ด๋?
์ํฐํฐ ๋งค๋์ ๊ฐ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ์ํฐํฐ๋ฅผ ์๋ ๊ฐ์งํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ํ๋ ๊ฒ์ ๋งํ๋ค.
Dirty Checking์ ์ด๋ฏธ ์์ํ ๋ ์ํฐํฐ๋ค์ ๋์์ผ๋ก ์๋ํจ
๋ํฐ ์ฒดํน์ด ์ผ์ด๋๋ ํ๊ฒฝ์ ์๋ ๋๊ฐ์ง ์กฐ๊ฑด์ด ์ถฉ์กฑ ๋์ด์ผ ํจ
- ์์ ์ํ(Managed) ์์ ์๋ ์ํฐํฐ์ธ ๊ฒฝ์ฐ
- Transaction ์์์ ์ํฐํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ
๋ํฐ ์ฒดํน์ผ๋ก ์์ฑ๋๋ update ์ฟผ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํ๋๋ฅผ ์ ๋ฐ์ดํธ ํจ
JPA์์ ๋ณ๊ฒฝ๋ ํ๋๋ง update ํ์ง ์๊ณ ๋ชจ๋ ํ๋๋ฅผ ๋ณ๊ฒฝํ๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ์ด์ ๋,
- ๋ชจ๋ ํ๋๋ฅผ Update ์ฟผ๋ฆฌ๋ก ๋ง๋ค๋ฉด ์์ ์ฟผ๋ฆฌ๊ฐ ํญ์ ๋์ผํ๊ฒ ์์ฑ๋๋ฏ๋ก ๋ฏธ๋ฆฌ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ฉฐ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํจ
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ ๋์ผํ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ฌ๋ฐ์ผ๋ฉด ํ๋ฒ ํ์ฑ๋ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์
ํ์ง๋ง ํ๋๊ฐ ๋ง์ ๊ฒฝ์ฐ์๋ ์ ์ฒด ํ๋ Update ์ฟผ๋ฆฌ๊ฐ ๋ถ๋ด์ด ๋ ์ ์์
์ด๋ฐ ๊ฒฝ์ฐ์ Entity ์ต์๋จ์ @DynamicUpdate๋ฅผ ์ถ๊ฐํ์ฌ ๋ณ๊ฒฝ ํ๋๋ง ๋ฐ์๋๋๋ก ํ ์ ์์
'Spring > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Hibernate๊ฐ DB์ ์ํํ๋ ๋ชจ๋ ์ฟผ๋ฆฌ๋ฌธ ์ฝ์์ ์ถ๋ ฅํ๊ธฐ (0) | 2023.10.12 |
---|---|
[JPA] ์ํ์ฐธ์กฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (1) | 2023.10.10 |
[JPA] QueryDSL + ์ค์ ๋ฐฉ๋ฒ (0) | 2023.08.08 |
[JPA] ๊ธฐ๋ณธ ํค ์์ฑ ์ ๋ต (0) | 2023.07.28 |