[Spring] JPA: ๊ฐ’์˜ ์ˆ˜์ •

[์›๋ณธ ๋งํฌ]

ํ…Œ์ด๋ธ” ์ƒํƒœ๋Š” ์ด๋ ‡๋‹ค.

JPA์—์„œ ๊ธฐ์กด์— ์กด์žฌํ•˜๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?
JPA๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋ณด๋ฉด, save, find, delete ๋“ฑ์€ ์žˆ์ง€๋งŒ ์ˆ˜์ •์„ ์œ„ํ•œ update ๊ตฌ๋ฌธ์€ ๋”ฐ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์™œ์ผ๊นŒ.

์‚ฌ์‹ค ๊ทธ๋ƒฅ, ์—”ํ‹ฐํ‹ฐ ๋ฝ‘์•„๋‹ค๊ฐ€ ๋ฐ”๊ฟ€ ๊ฒƒ๋งŒ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ saveํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ ์ž˜ ๋ฐ”๋€๋‹ค.


์ฃผ์˜ํ•  ์ ์€, id๊ฐ€ ๊ธฐ์กด์— ์กด์žฌํ•˜๋˜ ๊ฒƒ์ธ์ง€๋ฅผ ํŒ๋‹จํ•ด์„œ ์ƒˆ๊ฑฐ๋ฉด ์ƒˆ๋กœ ํ• ๋‹นํ•˜๊ณ ,
์žˆ๋˜๊ฑฐ๋ฉด ์ˆ˜์ •ํ•˜๋Š” ์‹์œผ๋กœ ๋ฐ˜์˜ํ•œ๋‹จ ๊ฒƒ์ด๋‹ค.

์œ„์—์„  id๋ฅผ ๊ทธ๋Œ€๋กœ ๋’€์œผ๋‹ˆ ์ˆ˜์ •๋งŒ ๋์ง€๋งŒ, ์ด๋ ‡๊ฒŒ

id๋ฅผ ๋ฐ”๊ฟ”์„œ ๋„ฃ์œผ๋ฉด


์‚ฝ์ž…์ด ์ˆ˜ํ–‰๋œ๋‹ค.



JPQL์„ ํ†ตํ•œ ์ฟผ๋ฆฌ ์ˆ˜ํ–‰

์ด์™ธ์—๋„ Query ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
JPQL์ด๋ผ๋Š” ์ „์šฉ ์ฟผ๋ฆฌ ๊ทœ๊ฒฉ์„ ์‚ฌ์šฉํ•œ๋‹ค.

id๋กœ ๊ฒ€์ƒ‰ํ•ด์„œ name ๋ณ€๊ฒฝํ•˜๋Š” ์ฟผ๋ฆฌ๋‹ค.
ํ…Œ์ด๋ธ” ๋Œ€์‹ ์— ํ…Œ์ด๋ธ”์„ ๊ตฌํ˜„ํ•œ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค๋ฅผ ๋‘ฌ์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ด๋ธ”์— n์ด๋ผ๋Š” ์ด๋ฆ„์„ ๋ถ€์—ฌํ•ด์„œ ์ฐธ์กฐํ•˜๋„๋ก ํ–ˆ๋‹ค...
:๋กœ ์‹œ์ž‘๋˜๋Š” ๋‹จ์–ด๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋งค์นญ๋œ๋‹ค.


์ด๋ ‡๊ฒŒ ํ•˜๋ฉด,


์ด๋ ‡๊ฒŒ ์ž˜ ๋ฐ”๋€๋‹ค.



๊ทธ๋ƒฅ ์‚ฌ์šฉ์ค‘์ธ DB์˜ SQL ์“ฐ๊ธฐ

๋˜ ๊ท€์ฐฎ๊ฒŒ JPQL์„ ์ตํ˜€์„œ ์“ฐ๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด, ๊ทธ๋ƒฅ ์‚ฌ์šฉ์ค‘์ธ ๋‚ด์žฅ db์˜ sql๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
Query ์–ด๋…ธํ…Œ์ด์…˜์— nativeQuery๋ฅผ true๋กœ ์„ค์ •ํ•œ๋‹ค.


์ด๋ฒˆ์—” _id 3์งœ๋ฆฌ๋ฅผ ๊ฑด๋“œ๋ ธ๋‹ค.


์ž˜ ๋Œ์•„๊ฐ€๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


์ฐธ์กฐ
http://wonwoo.ml/index.php/post/1004
https://www.baeldung.com/spring-data-jpa-query