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