๊ณ„๋ž€์†Œ๋…„ 2023. 12. 22. 15:00

1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฉ์–ธ

JPA๋Š” ํŠน์ • DB์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์•Œ์•„์„œ ๋ฐ”๊ฟ”์ค€๋‹ค.

 

2. JPA๊ตฌ๋™ ๋ฐฉ์‹

Persistence ํด๋ž˜์Šค๊ฐ€ META-INF/persistence.xml ์„ค์ • ํŒŒ์ผ์„ ์ฝ์–ด์„œ EntityManagerFactory๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค EntityManager๋ฅผ ๋งŒ๋“ ๋‹ค.

EntityManagerFactory๋Š” ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•ด์„œ ์ „์ฒด์—์„œ ๊ณต์œ ํ•˜๊ณ ,

EntityManager๋Š” ์“ฐ๋ ˆ๋“œ๊ฐ„์— ๊ณต์œ ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ ํ›„ ๋ฒ„๋ฆฐ๋‹ค.

JPA์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์€ ํŠธ๋žœ์žญ์…˜ ์•ˆ์—์„œ ์‹คํ–‰ํ•œ๋‹ค.

์‹œ์ž‘์— ์•ž์„œ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์ด ํ•„์š”ํ•˜๋‹ค. ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ณต๋ถ€๋ฅผ ๋” ํ•˜๋„๋ก ํ•˜๊ณ , ๊ฐ„๋‹จํžˆ ์•„๋ž˜๊ธ€๋กœ ๊ฐœ๋…๋งŒ ์žก์•„๋ณด์ž

ํŠธ๋žœ์žญ์…˜?
https://koreatstm.tistory.com/103

 

ํŠธ๋žœ์žญ์…˜

ํŠธ๋žœ์žญ์…˜ ํŠธ๋žœ์žญ์…˜์˜ ์ •์˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—… ๋‹จ์œ„์ด๋‹ค. ์ด๋•Œ, ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚จ๋‹ค๋Š”๊ฒŒ ๋ฌด์Šจ ๋ง์ผ๊นŒ? ๋ง์„ ์–ด๋ ต๊ฒŒ ํ–ˆ๋Š”๋ฐ ์‰ฝ๊ฒŒ ์ด์•ผ๊ธฐํ•ด์„œ sql์„ ๊ฐ€์ง€๊ณ  ๋ฐ

koreatstm.tistory.com

EntityManagerFactory๋Š” ๋กœ๋”ฉ ์‹œ์ ์— ํ•˜๋‚˜๋งŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

EntityManager๋Š” ํŠธ๋žœ์žญ์…˜๋งˆ๋‹ค ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค.

JPA์˜ ๋ชจ๋“  ์ž‘์—…์€ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ํ•ด์•ผํ•œ๋‹ค.

EntityManager๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปค๋„ฅ์…˜์„ ๋ฌผ๊ณ  ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์“ฐ๊ณ  ๋‚˜์„œ ๊ผญ ๋‹ซ์•„์ค˜์•ผ ํ•œ๋‹ค.

์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋๋‚˜๋ฉด ํŒฉํ† ๋ฆฌ๊นŒ์ง€ ๋‹ซ์•„์ค€๋‹ค.

 

 

3. JPQL

JPA๋Š” SQL์„ ์ถ”์ƒํ™”ํ•œ JPQL์ด๋ผ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ์ฟผ๋ฆฌ์–ธ์–ด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

JPQL์€ ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ฟผ๋ฆฌ

SQL์€ DB ํ…Œ์ด๋ธ”์„ ๋Œ€์ƒ์œผ๋กœ ์ฟผ๋ฆฌ

์ฆ‰ ์ •๋ฆฌํ•˜๋ฉด JPQL์€ ๊ฐ์ฒด์ง€ํ–ฅ SQL์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

JPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ œ๋Š” ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ์ธ๋ฐ, ๊ฒ€์ƒ‰๋„ ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๊ฒ€์ƒ‰ํ•œ๋‹ค.

๋ชจ๋“  DB ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๊ฒ€์ƒ‰ํ•˜๋Š”๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ์—, ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด ๊ฒ€์ƒ‰ ์กฐ๊ฑด์ด ํฌํ•จ๋œ SQL์ด ํ•„์š”

์ด๋•Œ ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด JPQL์ด๋‹ค.