Hibernate-reactive: session.remove && session.getReference

์— ๋งŒ๋“  2020๋…„ 09์›” 07์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: hibernate/hibernate-reactive

์•ˆ๋…•ํ•˜์„ธ์š”, ์ œ๊ฐ€ ์ดํ•ดํ•˜๋Š” ๋ฐ”์™€ ๊ฐ™์ด jpa๋ฅผ ๋”ฐ๋ผ ๋ถ„๋ฆฌ๋œ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹จ ํ•œ ๊ฐ€์ง€๋ฟ์ž…๋‹ˆ๋‹ค.

factory.withTransaction((session, transaction) -> 
    session.merge(sampleEntity).invokeUni(session::remove)
).await().indefinitely();

๋‹ค ์ข‹์€๋ฐ ์„ฑ๋Šฅ์— ๊ด€ํ•œ ๊ฒƒ์ด๋ผ๋ฉด ๋ณ‘ํ•ฉ ์ž‘์—…์— ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ์‹ค์ œ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚ด ๋ถ€์ •ํ™•ํ•œ ์‹œ๊ฐ„ ์ธก์ •์— ๋”ฐ๋ฅด๋ฉด 5000๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ~4์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๊ณ  ์ตœ๋Œ€ ์ ˆ์ „ ๋ชจ๋“œ์—์„œ๋Š” 50ms๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ์—”ํ‹ฐํ‹ฐ์˜ ์˜๊ตฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” session.getReference ๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๋ฐฉ๊ธˆ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. session.remove ๋Œ€ํ•œ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  3 ๋Œ“๊ธ€

์ฃผ์–ด์ง„ ์—”ํ‹ฐํ‹ฐ์˜ ์˜๊ตฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” session.getReference ๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๋ฐฉ๊ธˆ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. session.remove ๋Œ€ํ•œ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•„, ์ข‹์€ ์ง€์ ์ž…๋‹ˆ๋‹ค. ์ ˆ๋Œ€์ ์œผ๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. #360์—์„œ ์ž‘๋™ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋จผ์ € ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ  ๊ฐœ์ฒด๋ฅผ remove() ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์Œ์„ ์ดํ•ดํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. remove() ์—๋Š” ์„ธ์…˜์˜ ์—”ํ„ฐํ‹ฐ ์ƒํƒœ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ณ„๋‹จ์‹ ์‚ญ์ œ ๋ฐ ์ปฌ๋ ‰์…˜ ์ œ๊ฑฐ์™€ ๊ฐ™์€ ์˜๋ฏธ ์ฒด๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ  ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ StatelessSession.delete() ๋˜๋Š” HQL delete ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@Xset-s PS ๋ณด๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ ์‹ค์ˆ˜๋กœ ํฐ ์‹ค์ˆ˜์˜€์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค. ์ž‘์—… ์ œ๊ฑฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‹ต๋ณ€๊ณผ ๋งค์šฐ ๋น ๋ฅธ ์ˆ˜์ •์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €๋Š” ์ง€๊ธˆ ์‹คํ—˜์„ ํ•˜๊ณ  ์žˆ๊ณ  ์ƒˆ๋กœ์šด ๋†€๋ผ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ธก ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ (๋˜๋Š” ๋งŽ์€ ์ˆ˜์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ) ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰