๋ฒํฌ ์ฐ์ฐ
๋ง์ฝ ํ ํด๊ฐ ์ง๋์ ๋ชจ๋ ํ์์ ๋์ด๋ฅผ 1์ฉ ์ฌ๋ ค์ฃผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น์?
JPA์ ๋ณ๊ฒฝ ๊ฐ์ง ๊ธฐ๋ฅ์ผ๋ก ์คํํ๋ ค๋ฉด ๋๋ฌด ๋ง์ SQL์ด ์คํ๋ฉ๋๋ค.
์ด๋ด ๋ ๋ฒํฌ ์ฐ์ฐ์ ์ฌ์ฉํ ์ ์๋๋ฐ, ์ฟผ๋ฆฌ ํ๋ฒ์ผ๋ก ์ฌ๋ฌ ํ ์ด๋ธ์ ๋ก์ฐ๋ฅผ ๋ณ๊ฒฝ ๊ฐ๋ฅํฉ๋๋ค.
executeUpdate()
๋ฒํฌ ์ฐ์ฐ์ executeUpdate()๋ฅผ ํตํด ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ฐํ๊ฐ์ ์ํฅ์ ๋ฐ์ ์ํฐํฐ์ ์๋ฅผ ๋ฐํํฉ๋๋ค.
UPDATE์ DELETE๋ฅผ ์ง์ํ๋ฉฐ ํ์ด๋ฒ๋ค์ดํธ์์๋ INSERT๋ ์ง์ํฉ๋๋ค.
em.createaQuery("delete from Product p where p.price < :price")
.setParameter("price" , 100)
.executeUpdate();
๋ฒํฌ ์ฐ์ฐ์ ์ฃผ์์
๋ฒํฌ ์ฐ์ฐ์ ์์์ฑ ์ปจํ ์คํธ๋ฅผ ๋ฌด์ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ฟผ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.(์์์ฑ ์ปจํ ์คํธ๋ฅผ ์ ๋ฐ์ดํธ ํ์ง ์๋๋ค๋ ์๋ฆฌ์ ๋๋ค.)
๋ฐ๋ผ์ ์์์ฑ ์ปจํ ์คํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ผฌ์ผ ์ ์๊ธฐ ๋๋ฌธ์, ๋ค์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ ํํด์ ํด๊ฒฐํ์ฌ์ผ ํฉ๋๋ค.
- ๋ฒํฌ ์ฐ์ฐ์ ๋จผ์ ์คํํฉ๋๋ค.
- ๋ฒํฌ ์ฐ์ฐ์ ์ํ ํ ์์์ฑ ์ปจํ ์คํธ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
๋ฒํฌ ์ฐ์ฐ๋ JPQL์ ์คํ์ํค๋ ๊ฒ์ด๋ฏ๋ก, ๋ฒํฌ ์ฐ์ฐ ์ํ ๋ฐ๋ก ์ง์ ์ ์์์ฑ ์ปจํ ์คํธ๋ฅผ Flush ํ ํ ์ํ๋ฉ๋๋ค.
Reference
[์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊น์ํ]
'๐๏ธ Spring > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA] ์๊ธฐ ์์ ์ ๊ณ์ธตํ์ผ๋ก ๋งคํํ๊ธฐ (0) | 2021.12.18 |
---|---|
[JPA] ํ์น ์กฐ์ธ (0) | 2021.12.18 |
[JPA] JPQL Named ์ฟผ๋ฆฌ (0) | 2021.12.17 |
[JPA] JPQL ์ฌ์ฉ๋ฒ (0) | 2021.12.17 |
[JPA] JPA์ ๋ค์ํ ์ฟผ๋ฆฌ ๋ฐฉ๋ฒ (JPQL, JdbcTemplate) (0) | 2021.12.16 |