
JPA(Java Persistence API)๋ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์์
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ORM(Object-Relational Mapping) ํ์ค ๊ธฐ์
JPA

๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฒด(Entity) ๊ฐ ์๋ ๋งคํ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์๋ฐ ORM ํ๋ ์์ํฌ
โข
JPA
โข
JPA ์ฃผ์ ๊ตฌ์ฑ ์์
โข
JPA ์ฅ์
โข
JPA vs MyBatis
JPA ์๊ฐ
ORM(Object-Relational Mapping)

๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ์ฒด(Object)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๊ณ(Relation)๋ฅผ ๋งคํํ๋ ๊ธฐ์
โข
Persistence Framework
โฆ
ORM
โฆ
SQL Mapper
ORM
์ํฐํฐ(Entity)

JPA ์ํฐํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ๊ณผ ๋งคํ๋๋ ์์์ฑ ๊ฐ์ฒด
์ํฐํฐ
๊ด๊ณ ๋งคํ
JPA ๊ด๊ณ ๋งคํ ๊ฐ๋
JPA์์ ์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ ๋ ์ฐ๊ด ๊ด๊ณ ๋งคํ์ ์ฌ์ฉํฉ๋๋ค. ๊ด๊ณ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฅ๋ฉ๋๋ค.
โข
๊ด๊ณ ๋งคํ
JPA ์ฃผ์ ์ด๋
ธํ
์ด์
JPA์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ด๋
ธํ
์ด์
์ ๊ธฐ๋ณธ ์ํฐํฐ, ๊ด๊ณ ๋งคํ, ๊ธฐํ ๊ธฐ๋ฅ์ผ๋ก ๋ถ๋ฅํ์ฌ ์ ๋ฆฌํ์ต๋๋ค.
์ฃผ์ ์ด๋
ธํ
์ด์
JPQL (Java Persistence Query Language)

JPQL์ JPA(Java Persistence API)์์ ์ ๊ณตํ๋ ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด๋ก, SQL๊ณผ ์ ์ฌํ์ง๋ง ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.
JPQL
Criteria API

Criteria API๋ JPA์์ ํ์
์์ ํ ๋์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋๋ก ์ง์ํ๋ ๊ธฐ๋ฅ์
๋๋ค.
Criteria API
Querydsl

Querydsl์ ํ์
์์ ํ SQL ๋ฐ JPQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ์
๋๋ค.
Querydsl
๊ฒ์ํ ํ๋ก์ ํธ

JPA ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ CRUD ๊ธฐ๋ฅ์ ์ ์ฉํ๋ ๊ฒ์ํ ํ๋ก์ ํธ๋ฅผ ๊ตฌํํด๋ด
๋๋ค.
1.
์ค๋น์ฌํญ
a.
DB
b.
JDK
c.
IDE
2.
์์กด์ฑ
a.
build.grdle
3.
๋ฐ์ดํฐ ์์ค
a.
application.properties
4.
ํ๋ก์ ํธ ์ค์
5.
์ํฐํฐ ์ ์
6.
Repository ์ธํฐํ์ด์ค ์ ์ธ
์ค๋น์ฌํญ
1.
DB
๊ฒ์ํ ํ๋ก์ ํธ


