ALOHA CLASS
/
Back-End
/
JPA
Search
Duplicate
Share
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