๐ง JPA๋?
์๋ฐ ๊ฐ์ฒด์ DBํ ์ด๋ธ ๊ฐ์ ๋งคํ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ORM ํ์ค
๐ก ์์
์ํฐํฐ
- DB์์ ์ง์์ ์ผ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฐ ๊ฐ์ฒด์ ๋งคํ
- ๋ฉ๋ชจ๋ฆฌ ์์ ์๋ฐ ๊ฐ์ฒด์ ์ธ์คํด์ค ํํ๋ก ์กด์ฌํ๋ฉฐ EntitiyManager์ ์ํด DB์ ๋ฐ์ดํฐ์ ๋๊ธฐํ
์ํฐํฐ ๋งค๋์
- ํ์์ ๋ฐ๋ผ Enitity์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๋ค.
- EntitiyManager์์ ์ ๊ณตํ๋ Entity ์กฐ์ API๋ฅผ ์ด์ฉํด Entity์ ๋ํด CRUD ์์ ์ ํ ์ ์๋ค.
์์์ฑ ์ปจํ ์คํธ ( Persistence Context )
- ์ํฐํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ๋ ํ๊ฒฝ
- ์ํฐํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ๊ฒ์ํ ๋ ์ํฐํฐ ๋งค๋์ ๋ ์์์ฑ ์ปจํ ์คํธ์์ ์ํฐํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌ
- ์ํฐํฐ ๋งค๋์ ๋ฅผ ์์ฑํ ๋ ์์์ฑ ์ปจํ ์คํธ๊ฐ ๋ง๋ค์ด์ง๋ค.
- ์์์ฑ ์ปจํ ์คํธ์ ์ ๊ทผํ๊ฑฐ๋ ๊ด๋ฆฌ๋ฅผ ํ ๋ ค๋ฉด ์ํฐํฐ ๋งค๋์ ๋ฅผ ํตํด์ผ ํจ
์ํฐํฐ ์ํ
- ๋น์์ : ์์์ฑ ์ปจํ ์คํธ์ ๊ด๋ จ์ด ์๋ ์ํ
- ์์ : ์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅ๋ ์ํ
- ์ค์์ : ์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅ๋์๋ค๊ฐ ๋ถ๋ฆฌ๋ ์ํ
- ์ญ์ : ์์์ฑ ์ปจํ ์คํธ์ ์ญ์ ๋ ์ํ
์์์ฑ ์ ์ด
- ์ํฐํฐ์ ์์์ฑ ์ํ ๋ณํ๋ฅผ ์ฐ๊ด๋ ์ํฐํฐ์๋ ํจ๊ผ ์ ์ฉํ๋ ๊ฒ
- ์ํฐํฐ๋ฅผ ์ ์ฅํ ๋ ์ฐ๊ด๋ ์ํฐํฐ๋ ํจ๊ป ์ ์ฅํ๊ณ ์ํฐํฐ๋ฅผ ์ญ์ ํ ๋๋ ๊ด๋ จ๋ ์ํฐํฐ๋ ํจ๊ป ์ญ์
๐ก JPA ์ ๋ ธํ ์ด์
- @Entity : JPA๋ฅผ ์ฌ์ฉํด์ ํ ์ด๋ธ๊ณผ ๋งคํํ ํด๋์ค๋ @Entity๋ฅผ ํ์๋ก ๋ถ์ฌ์ผ ํ๋ค.
- @Table : ์ํฐํฐ์ ๋งคํํ ํ ์ด๋ธ์ ์ง์ ํ๋ค. ์๋ตํ๋ ค๋ฉด ๋งคํํ ์ํฐํฐ ์ด๋ฆ์ ํ ์ด๋ธ ์ด๋ฆ์ผ๋ก ํ๋ค.
- @Id : ๊ธฐ๋ณธ ํค(Primary Key)๋ฅผ ๋งคํํ๋ค.
- @Column : ๊ฐ์ฒด ํ๋๋ฅผ ํ ์ด๋ธ ์ปฌ๋ผ์ ๋งคํํ๋ค.
๐ก ์ฟผ๋ฆฌ ๋ฉ์๋
Spring Data JPA๋ ๋ฉ์๋์ ์ด๋ฆ๋ง์ผ๋ก ์ํ๋ ์ง์(query)๋ฅผ ์คํํ ์ ์๋ ๋ฐฉ๋ฒ ์ ๊ณต
๊ธฐ๋ณธ ๊ตฌ์กฐ
- find...By...
- read...By...
- query...By...
- get...By...
- count...By...
์ง์ ํค์๋
๋ฐ์ํ
'Back-end > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA] native query ์ฌ์ฉ ์ enum์ ๋ณ์๋ก ํ๊ธฐ ( SpEL expression ) (0) | 2022.04.03 |
---|---|
[JPA] JPA native query ์ฌ์ฉ์ dto mapping (0) | 2022.02.06 |