๋ฒํฌ ์ฐ์ฐ
update.set.execute() ๊ฐ์ ์ฐ์ฐ์ ์์์ฑ ์ปจํ
์คํธ๋ฅผ ์๊ฐํ์ง ์๊ณ ๋ฐ๋ก DB ์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ๋ค. ์ด์๋ฐ๋ผ ์์ํ๋ ๊ฐ์ฒด์ DB ์ ๊ฐ์ฒด ์ฌ์ด ์ ๋ณด๊ฐ ๋ค๋ฅด๋ค. ์ด๋ ๋์ผ์ฑ์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๊ณ , ์
๋ฐ์ดํธ๊ฐ ๋ ์ดํ์ ์กฐํ๋ฅผ ํ๋ค ํ๋๋ผ๋ ์
๋ฐ์ดํธ๊ฐ ๋์ง ์์ ๊ฐ์ฒด๊ฐ ์กฐํ๋๋ค. ์ฑ๊ณผ DB ์ฌ์ด์ repeatable read ๋ฌธ์
โ em.clear() ๋ก ์์์ฑ์ ์์ ๋ฒ๋ฆฐ๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฌ๋ฉด ๋น์ฆ๋์ค ๋ก์ง์์ DB ๋ก์ง์ด ์ถ๊ฐ๋๋ค.
๋น ๋ฑ๋ก
๋น ๋ฑ๋กํ๋ฉด ์ฑ๊ธํค์ด๋ผ์ ์ฌ๋ฌ ์ฐ๋ ๋์์ ์ฌ์ฉํ๊ฒ ๋ ๋ ๋ฌธ์ ๊ฐ ๋์ง ์๋?
โ JPAQueryFactory ๋ entity manager ๋ฅผ ์ฃผ์
๋ฐ๋๋ค. entity manager ๋ ํธ๋์ญ์
๋จ์๋ก ์ปค๋ฅ์
๊ณผ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ค. spring ์์ entity manager ๋ ํ๋ก์ ๊ฐ์ฒด๋ฅผ ์ฃผ์
ํ๊ณ ํธ๋์ญ์
๋จ์๋ก ๋ค ๋ค๋ฅธ ํ๋ก์ ๊ฐ์ฒด๋ฅผ ๋ฐ์ธ๋ฉํ๋ค. ๊ทธ๋์ ๋ฌธ์ ๊ฐ ์๋ค.
cross join
jpaQueryFactory.select(roleHistory)
.from(roleHistory,role)
.where(role.id.eq(roleId))
.fetch();
Plain Text
๋ณต์ฌ
from ์์ cross join ๋ฐ์