flush()

flush()

  1. ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ๋น„์šฐ์ง€ ์•Š๊ณ , ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์˜ ๋ณ€๊ฒฝ๋‚ด์šฉ์„ DB์— ๋™๊ธฐํ™” flush()๋ฅผ ํ•œ๋‹ค๊ณ  1์ฐจ ์บ์‹œ ๋‚ด์šฉ์ด ๋‹ค ์—†์–ด์ง€๋Š” ๊ฑด ์•„๋‹ˆ๋‹ค! ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ๋“ค์ด DB์— ๋ฐ˜์˜๋˜๋Š” ๊ฒƒ์ด๋‹ค.

  2. ํŠธ๋žœ์žญ์…˜์ด๋ผ๋Š” ์ž‘์—… ๋‹จ์œ„๊ฐ€ ์ค‘์š”ํ•˜๋‹ค! -> ์ปค๋ฐ‹ ์ง์ „์—๋งŒ ๋™๊ธฐํ™” ํ•˜๋ฉด ๋จ

  3. JPA๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ด€์„ฑ์žˆ๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ๋™์‹œ์„ฑ์— ๊ด€๋ จํ•œ ๊ฒƒ์€ ํŠธ๋žœ์žญ์…˜์— ์œ„์ž„ํ•œ๋‹ค.

  4. ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ ํŠธ๋žœ์žญ์…˜ ์ฃผ๊ธฐ๊ฐ€ ๋งž๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

flush()๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ผ์–ด๋‚˜๋Š” ์ผ๋“ค

  1. ๋ณ€๊ฒฝ ๊ฐ์ง€

  2. ์ˆ˜์ •๋œ ์—”ํ‹ฐํ‹ฐ ์“ฐ๊ธฐ ์ง€์—ฐ SQL ์ €์žฅ์†Œ์— ๋“ฑ๋ก

  3. ์“ฐ๊ธฐ ์ง€์—ฐ SQL ์ €์žฅ์†Œ์˜ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ „์†ก (๋“ฑ๋ก, ์ˆ˜์ •, ์‚ญ์ œ ์ฟผ๋ฆฌ)

์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ํ”Œ๋Ÿฌ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

  1. em.flush() - ์ง์ ‘ ํ˜ธ์ถœ (์Šคํ”„๋ง๋ถ€ํŠธ&JPA๊ฐ€ ์ž๋™ํ™”ํ•ด์ฃผ์–ด์„œ ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ์ž˜ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๋Š” ๊ฒƒ ๊ฐ™์Œ)

  2. ํŠธ๋žœ์žญ์…˜ ์ปค๋ฐ‹ - ํ”Œ๋Ÿฌ์‹œ ์ž๋™ ํ˜ธ์ถœ

  3. JPQL ์ฟผ๋ฆฌ ์‹คํ–‰ - ํ”Œ๋Ÿฌ์‹œ ์ž๋™ ํ˜ธ์ถœ =>persist๋งŒ ํ•˜๊ณ (์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ๋“ฑ๋ก๋งŒ ํ•˜๊ณ ) ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” JPQL์„ ์ž‘์„ฑํ•˜๋ฉด ์‹ค์ œ๋กœ DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋•Œ๋Š” ํ”Œ๋Ÿฌ์‹œ๊ฐ€ ์ž๋™ ํ˜ธ์ถœ๋œ๋‹ค!!

em.persist(memberA);
em.persist(memberB);
em.persist(memberC);
//์ค‘๊ฐ„์— JPQL ์‹คํ–‰
query = em.createQuery("select m from Member m", Member.class);
List<Member> members= query.getResultList();

ํ”Œ๋Ÿฌ์‹œ ๋ชจ๋“œ ์˜ต์…˜(๊ฑฐ์˜ ์“ฐ์ง€ ์•Š์Œ) em.setFlushMode(FlushModeTypee.COMMIT)

  • FlushModeType.AUTO : ์ปค๋ฐ‹์ด๋‚˜ ์ฟผ๋ฆฌ ์‹คํ–‰ํ•  ๋•Œ ํ”Œ๋Ÿฌ์‹œ (๊ธฐ๋ณธ๊ฐ’)

  • FlushModeType.COMMIT : ์ปค๋ฐ‹ํ•  ๋•Œ๋งŒ ํ”Œ๋Ÿฌ์‹œ ํ˜„์žฌ persistํ•˜๋Š” ํ…Œ์ด๋ธ”๊ณผ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•  ๋•Œ๋Š” ๊ตณ์ด ํ”Œ๋Ÿฌ์‹œํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋ฐ‹ํ•  ๋•Œ๋งŒ ํ”Œ๋Ÿฌ์‹œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์„ค์ • ๊ฐ€๋Šฅ(๋น„์ถ”์ฒœ)

Last updated