+) 22. 09. 06. μΆκ°
μΉμ 5. λ°μ΄ν° μ κ·Ό κΈ°μ - JPA μκ° μλ£!!
JPAλ ORM λ°μ΄ν° μ κ·Ό κΈ°μ μ μ 곡νλ€.
μ€νλ§ λ°μ΄ν° JPA, Querydslμ JPAλ₯Ό νΈλ¦¬νκ² μ¬μ©νλλ‘ λμμ£Όλ λκ΅¬λΌ μκ°νλ©΄ λλ€.
JPAμμ κ°μ₯ μ€μν λΆλΆμ κ°μ²΄μ ν μ΄λΈμ 맀ννλ κ²μ΄λ€.
@Entity
: JPAκ° μ¬μ©νλ κ°μ²΄λΌλ λ»μ΄λ€. μ΄ μ λ
Έν
μ΄μ
μ΄ μμ΄μΌ JPAκ° μΈμν μ μλ€.@Id
: ν
μ΄λΈμ PKμ ν΄λΉ νλλ₯Ό 맀ννλ€.@GeneratedValue(strategy = GenerationType.IDENTITY)
: PK μμ± κ°μ DBμμ μμ±νλ IDENTITY
λ°©μμ μ¬μ©νλ€. (μ: MySQL auto increment)JPAλ public λλ protectedμ κΈ°λ³Έ μμ±μκ° νμλ€.
JPAλ νΈλμμ μ΄ μ»€λ°λλ μμ μ, λ³κ²½λ μν°ν° κ°μ²΄κ° μλμ§ νμΈνλ€. νΉμ μν°ν° κ°μ²΄κ° λ³κ²½λ κ²½μ°μλ UPDATE SQLμ μ€ννλ€.
JPAμμ μν°ν° κ°μ²΄λ₯Ό PK κΈ°μ€μΌλ‘ μ‘°νν κ²½μ° find()
λ₯Ό μ¬μ©νκ³ , μ‘°ν νμ
κ³Ό PK κ°μ μ£Όλ©΄ λλ€. κ·ΈλΌ JPAκ° μ‘°ν SQLμ λ§λ€μ΄ μ€ννκ³ , κ²°κ³Όλ₯Ό λ°λ‘ κ°μ²΄λ‘ λ³νν΄μ€λ€.
JPQL
JPAλ JPQL(Java Persistence Query Language)μ΄λΌλ κ°μ²΄ μ§ν₯ 쿼리 μΈμ΄λ₯Ό μ 곡νλ€.
μ£Όλ‘ μ¬λ¬ λ°μ΄ν°λ₯Ό 볡μ‘ν 쑰건μΌλ‘ μ‘°νν λ μ¬μ©νλ€.
μ: String jpql = "select i from Item i";
JPQLμ μ€ννλ©΄ κ·Έ μμ ν¬ν¨λ μν°ν° κ°μ²΄μ 맀ν μ 보λ₯Ό νμ©νμ¬ SQLμ λ§λ€κ² λλ€.
μμΈ λ³ν
JPAμ κ²½μ° μμΈκ° λ°μνλ©΄ JPA μμΈκ° λ°μνκ² λλ€.
EntityManager
λ μμν JPA κΈ°μ μ΄κ³ , μ€νλ§κ³Όλ κ΄κ³κ° μλ€. λ°λΌμ μν°ν° 맀λμ λ μμΈκ° λ°μνλ©΄ JPA κ΄λ ¨ μμΈλ₯Ό λ°μμν¨λ€.
κ·Έλ λ€λ©΄ JPA μμΈλ₯Ό μ€νλ§ μμΈ μΆμν DataAccessException
λ‘ μ΄λ»κ² λ³νν κΉ?
λ°λ‘ @Repository
λ₯Ό λΆμ΄λ©΄ κ°λ₯ν΄μ§λ€.
@Repositoryμ κΈ°λ₯
@Repository
κ° λΆμ ν΄λμ€λ μ»΄ν¬λνΈ μ€μΊμ λμμ΄ λλ€.
@Repository
κ° λΆμ ν΄λμ€λ μμΈ λ³ν AOPμ μ μ© λμμ΄ λλ€. μμΈ λ³ν AOP νλ‘μλ JPA κ΄λ ¨ μμΈκ° λ°μνλ©΄ JPA μμΈ λ³νκΈ°λ₯Ό ν΅ν΄ λ°μν μμΈλ₯Ό μ€νλ§ λ°μ΄ν° μ κ·Ό μμΈλ‘ λ³ννλ€.
κ²°κ³Όμ μΌλ‘ 리ν¬μ§ν 리μ @Repository
μ λ
Έν
μ΄μ
λ§ μμΌλ©΄ μ€νλ§μ΄ μμΈ λ³νμ μ²λ¦¬νλ AOPλ₯Ό λ§λ€μ΄μ€λ€.
μμΈμμ κΉμλ°© μ°ΎκΈ°
class Solution {
public String solution(String[] seoul) {
String answer = "";
for (int i = 0; i < seoul.length; i++) {
if (seoul[i].equals("Kim")) {
answer = "κΉμλ°©μ " + i + "μ μλ€";
}
}
return answer;
}
}
μ μλ 2μ ... μ°Έκ³ λ‘ μ²μμ 'equals'κ° μλλΌ '=='μ μ¨μ νλ Έλ€ γ
γ
;
κ²μν΄ λ³΄λ '=='μ λ¬Έμμ΄μ μ£Όμλ₯Ό λΉκ΅νλ κ²μ΄κ³ , equalsλ λ¬Έμ νλνλμ κ°μ λΉκ΅νλ€κ³ νλ€. μ¦, equalsλ κ°μ΄ κ°μΌλ©΄ trueλ₯Ό λ°νν¨... γ
γ
... νλ λ°°μ λ€...