Search
Duplicate
๐Ÿงต

์ฃผ์˜์ 

๋ฒŒํฌ ์—ฐ์‚ฐ

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 ๋ฐœ์ƒ