1. JPA์ JPQL
JPA๋ฅผ ์ฌ์ฉํ๋ฉด ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ์ค์ฌ์ผ๋ก ๊ฐ๋ฐํ๋๋ฐ,
๋จ๊ฑด์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ์๋ ๋งค์ฐ ํธํ๋ค.
ํ์ง๋ง ๋ฌธ์ ๋ ๊ฒ์ ์ฟผ๋ฆฌ์ชฝ์ธ๋ฐ, ๊ฒ์์ ํ ๋๋ ํ ์ด๋ธ์ด ์๋ ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ๊ฒ์ํ๋ค.
๊ทธ์ ๋ฐ๋ผ, ๋ชจ๋ DB ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ก ๋ณํํด์ ๊ฒ์ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๊ณ
์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์ํ ๋ฐ์ดํฐ๋ง DB์์ ๋ถ๋ฌ์ค๋ ค๋ฉด ๊ฒฐ๊ตญ ๊ฒ์ ์กฐ๊ฑด์ด ํฌํจ๋ SQL์ด ํ์ํ๋ค.
JPA๋ SQL์ ์ถ์ํํ JPQL์ด๋ผ๋ ๊ฐ์ฒด ์งํฅ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ ๊ณตํ๋๋ฐ, SQL๊ณผ ๋น์ทํ ๋ฌธ๋ฒ, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN์ ์ง์ํ๋ค.
JPQL์ ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ์ฟผ๋ฆฌํ๊ณ , SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๋์์ผ๋ก ์ฟผ๋ฆฌํ๋ค.
SQL์ ์ถ์ํํด์ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค SQL์ ์์กดํ์ง ์๋๋ค.(์์์ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค SQL์ ๋ง์ถฐ์ ์ฟผ๋ฆฌ๋ ๋ ค์ค)
2. ์์์ฑ ์ปจํ ์คํธ
JPA๋ฅผ ์ดํดํ๋๋ฐ ๊ฐ์ฅ ์ค์ํ ์ฉ์ด์ด๋ค. "์ํฐํฐ๋ฅผ ์๊ตฌ ์ ์ฅํ๋ ํ๊ฒฝ" ์ด๋ผ๋ ๋ป์ด๋ฉฐ, ์ํฐํฐ ๋งค๋์ ๋ฅผ ํตํด์ ์ ๊ทผํ ์ ์๋ค.
์ํฐํฐ์ ์๋ช ์ฃผ๊ธฐ
๋น์์(new/transient)
- ์์์ฑ ์ปจํ ์คํธ์ ์ ํ ๊ด๊ณ๊ฐ ์๋ ์๋ก์ด ์ํ (๊ฐ์ฒด๋ฅผ ์์ฑํ ์ํ)
- Member member = new Member()
์์(managed)
- ์์์ฑ ์ปจํ ์คํธ์ ๊ด๋ฆฌ๋๋ ์ํ(๊ฐ์ฒด๋ฅผ ์ ์ฅํ ์ํ)
- EntityManager.persist(member)
์ค์์(detached)
- ์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅ๋์๋ค๊ฐ ๋ถ๋ฆฌ๋ ์ํ
์ญ์ (removed)
- ์ญ์ ๋ ์ํ
'Languages | Frameworks > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java) HashMap์ computeIfAbsent์ ๋ํด(feat. getOrDefault) (0) | 2023.01.27 |
---|---|
Java) List์ ArrayList์ ์ฐจ์ด? (0) | 2022.11.08 |
์ํธํ ์๊ณ ๋ฆฌ์ฆ ์ข ๋ฅ์ ์ถ์ฒ(SHA, PBKDF2, Bcrypt) + Java ์ ์ฉ ์ํ (0) | 2022.07.18 |
๊ฒ์ํ ๊ธ์ด ์ค๊ฐ์ ์ญ์ ์ > ๋ฒํธ ์ด๊ธฐํํ ์ธ๋ฑ์ฑ ํ๋ ๋ฐฉ๋ฒ (0) | 2022.07.13 |
[Java] ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค (0) | 2022.05.30 |