๋ฌธ์ ์ํฉ
๋น๋๊ธฐ ๊ณต๋ถ๋ฅผ ์ํ ํ๋ก์ ํธ์์ JPA๋ฅผ ์ฌ์ฉ๋ฉด์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ค ์ง๊ณ ํ ์คํธ๋ฅผ ํด๋ณด๋ ค๋๋ฐ ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฌ๋ค.
TransactionRequiredException.. ํธ๋์ญ์ ์ด ํ์๋ผ๋ ๋ด์ฉ์ ์ต์ ์ ์ธ ๋ฏ ํ๋ค.
ํ์ฌ ์ฐ๋ ๋์์ ์ฌ์ฉํ ์ ์๋ ํธ๋์ญ์ ์ด ์๋ ์ํฐํฐ๋งค๋์ ๊ฐ์ฒด๊ฐ ์๋ค - persist๋ฅผ ํธ์ถํ ์ ์๋ค
์ด๋ฐ๋ง์ผ๊น
์๊ณ ๋ณด๋ ๋ด๊ฐ ํ๋ ์์ ์ ํธ๋์ญ์ ์ ์ธ์ ํด์ผ๋ง ํ๋ค.
JPA๋ Transaction์ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๋๋ก ๋์ด์๋ค.
Transaction์ ๋จ์์ ๋ฐ๋ผ 1์ฐจ ์บ์์์ญ์ ์๋ ๊ฐ์ฒด๋ค์ด DB์ flush๋์ด ์์ํ๋๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ง๋ง ๊ทธ๋ฌํ ์์์์ ์ ํ๋ persist() ๋ฉ์๋์ ๊ฐ์ฒด๊ฐ ๋ค์ด๊ฐ์ผ๋, ๊ฐ๋ฅํ Transaction์ด ์กด์ฌํ์ง ์์๊ธฐ ๋๋ฌธ์
์ด๋ฌํ ์๋ฌ๊ฐ ๋ฐ์ํ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
์๋น์ค ํน์ ํด๋์ค์ ๋ฏธ๋ฆฌ @Transactional์ ์ ์ธํ๋ค.
ํด๋์ค์๋ @Transactional(readOnly = true)
๋ฉ์๋์๋ @Transactional
์ ๋ถ์ฌ read ํธ๋์ญ์ ๊ณผ write ํธ๋์ญ์ ์ ๊ตฌ๋ถํ์ !!
ํด๊ฒฐ