๊ณต๋ถ€/TIL

[20250211] JPA ์‹ฌํ™”๊ณผ์ • ํ•„๊ธฐ

dvlpsy๐ŸŒผ 2025. 2. 11. 10:48
๋ฐ˜์‘ํ˜•

- Cascade ์™€ orphanRemoval ๋น„๊ต

1. Cascade (์˜์†์„ฑ ์ „์ด)

cascade = CascadeType.REMOVE : ๋ถ€๋ชจ ๊ฐ์ฒด์— ์„ค์ •ํ•˜๊ณ 
remove ์‹œ ์ž์‹ ๊ฐ์ฒด๋“ค๋„ ๊ฐ™์ด ์‚ญ์ œ๋œ๋‹ค.

threadService.remove(newThread);

// ํ•˜์œ„ comments ๋“ค๋„ ๊ฐ™์ด ์‚ญ์ œ๋จ

2. orphanRemoval (๊ณ ์•„ ๊ฐ์ฒด ์ œ๊ฑฐ)

orphanRemoval = true : ๋ถ€๋ชจ ๊ฐ์ฒด๋Š” ๋‚จ์•„์žˆ๋Š”๋ฐ ๋ถ€๋ชจ๊ฐ์ฒด์—์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”
์ž์‹ ๊ฐ์ฒด ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹ค์ œ ํ•ด๋‹น ์ž์‹ ๊ฐ์ฒด๊ฐ€ ์‚ญ์ œ๋œ๋‹ค.

newThread.getComments().removeIf(comment -> comment.getUser().getId().equals(savedUser.getId());

// ํ•ด๋‹น ์ฝ”๋ฉ˜ํŠธ ์‚ญ์ œ์ฟผ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰๋จ

- Fetch (์กฐํšŒ์‹œ์ )

EAGER: ์ฆ‰์‹œ ๋กœ๋”ฉ (๋ถ€๋ชจ ์กฐํšŒ ์‹œ ์ž์‹๋„ ๊ฐ™์ด ์กฐํšŒ)
LAZY: ์ง€์—ฐ ๋กœ๋”ฉ (์ž์‹์€ ํ•„์š”ํ•  ๋•Œ ๋”ฐ๋กœ ์กฐํšŒ)