ALOHA CLASS
/
Back-End
/
JPA
Search
Duplicate
Share
JPA
JPA(Java Persistence API)๋ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ORM(Object-Relational Mapping) ํ์ค ๊ธฐ์
ALCL_JPA.git
ALOHA-CLASS
JPA
JPA
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฒด(Entity) ๊ฐ ์๋ ๋งคํ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋
์๋ฐ ORM
ํ๋ ์์ํฌ
โข
JPA
โข
JPA ์ฃผ์ ๊ตฌ์ฑ ์์
โข
JPA ์ฅ์
โข
JPA vs MyBatis
JPA ์๊ฐ
ORM(Object-Relational Mapping)
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ์ฒด(Object)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๊ณ(Relation)๋ฅผ ๋งคํํ๋ ๊ธฐ์
๊ฐ์ฒด์ ํ ์ด๋ธ์ 1:1๋ก ๋งคํํ์ฌ SQL์ ์ง์ ์ฌ์ฉํ์ง ์๊ณ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐ์ํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ธฐ์ ์ ๋๋ค.
โข
Persistence Framework
โฆ
ORM
โฆ
SQL Mapper
ORM
์ํฐํฐ(Entity)
JPA ์ํฐํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ๊ณผ ๋งคํ๋๋ ์์์ฑ ๊ฐ์ฒด
@Entity ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ์ ์๋ฉ๋๋ค.
๊ฐ ์ํฐํฐ๋ ๊ณ ์ ํ ์๋ณ์(@Id)๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์๋ฐ ๊ฐ์ฒด๋ก ํํํฉ๋๋ค.
์ํฐํฐ
๊ด๊ณ ๋งคํ
JPA ๊ด๊ณ ๋งคํ ๊ฐ๋
JPA์์ ์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ ๋
์ฐ๊ด ๊ด๊ณ ๋งคํ
์ ์ฌ์ฉํฉ๋๋ค. ๊ด๊ณ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฅ๋ฉ๋๋ค.
โข
1:1 (One-To-One)
โ
@OneToOne
๊ด๊ณ ๋งคํ
JPA ์ฃผ์ ์ด๋ ธํ ์ด์
JPA์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ด๋ ธํ ์ด์ ์
๊ธฐ๋ณธ ์ํฐํฐ, ๊ด๊ณ ๋งคํ, ๊ธฐํ ๊ธฐ๋ฅ
์ผ๋ก ๋ถ๋ฅํ์ฌ ์ ๋ฆฌํ์ต๋๋ค.
์ฃผ์ ์ด๋ ธํ ์ด์
JPQL (Java Persistence Query Language)
JPQL์ JPA(Java Persistence API)์์ ์ ๊ณตํ๋ ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด๋ก, SQL๊ณผ ์ ์ฌํ์ง๋ง
์ํฐํฐ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์ํ
ํฉ๋๋ค.
JPQL
Criteria API
Criteria API๋
JPA์์ ํ์ ์์ ํ ๋์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑ
ํ ์ ์๋๋ก ์ง์ํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
SQL์ด๋ JPQL๊ณผ ๋ฌ๋ฆฌ,
์๋ฐ ์ฝ๋๋ง์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฑ
ํ๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ ์์ ์์ ์ค๋ฅ๋ฅผ ์ก์ ์ ์์ผ๋ฉฐ,
๋ฉ์๋ ์ฒด์ด๋ ๋ฐฉ์
์ผ๋ก ๋์ ์ฟผ๋ฆฌ๋ฅผ ์ฝ๊ฒ ์กฐ๋ฆฝํ ์ ์์ต๋๋ค.
Criteria API
Querydsl
Querydsl์
ํ์ ์์ ํ SQL ๋ฐ JPQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑ
ํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ์ ๋๋ค.
๊ธฐ์กด JPQL๊ณผ Criteria API์
๋ณต์กํ ์ฝ๋ ์์ฑ์ ๋จ์ํ
ํ๋ฉด์๋
๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ฌ์ฃผ๋ ๊ธฐ๋ฅ
์ ์ ๊ณตํฉ๋๋ค.
Querydsl
JPA ํ๋ก์ ํธ
๊ฒ์ํ ํ๋ก์ ํธ
JPA ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ CRUD ๊ธฐ๋ฅ์ ์ ์ฉํ๋ ๊ฒ์ํ ํ๋ก์ ํธ๋ฅผ ๊ตฌํํด๋ด ๋๋ค.
1.
์ค๋น์ฌํญ
a.
DB
b.
JDK
c.
IDE
2.
์์กด์ฑ
a.
build.grdle
3.
๋ฐ์ดํฐ ์์ค
a.
application.properties
4.
ํ๋ก์ ํธ ์ค์
5.
์ํฐํฐ ์ ์
6.
Repository ์ธํฐํ์ด์ค ์ ์ธ
์ค๋น์ฌํญ
1.
DB
๊ฒ์ํ ํ๋ก์ ํธ