JPQL

Java Persistence Query Language λž€ ?

SQL κ³Ό λΉ„μŠ·ν•œ 문법을 가진 객체지ν–₯ 쿼리 μž…λ‹ˆλ‹€.

νŠΉμ§•

  • ν…Œμ΄λΈ”μ΄ μ•„λ‹Œ 객체λ₯Ό κ²€μƒ‰ν•˜λŠ” 객체지ν–₯ 쿼리
  • SQL 을 좔상화 ν–ˆκΈ° λ•Œλ¬Έμ— νŠΉμ • 벀더에 쒅속적이지 μ•ŠμŒ
  • JPA λŠ” JPQL 을 λΆ„μ„ν•˜μ—¬ SQL 을 μƒμ„±ν•œ ν›„ DB μ—μ„œ 쑰회

κΈ°λ³Έ 문법

  1. λŒ€μ†Œλ¬Έμž ꡬ뢄
    • 엔티티와 속성은 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•œλ‹€.
      • μ—”ν‹°ν‹°μ˜ 이름은 User 와 User μ—”ν‹°ν‹°μ˜ 속성인 email 은 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•œλ‹€.
    • SELECT, FROM, AS 와 같은 JPQL 의 ν‚€μ›Œλ“œλŠ” λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•ŠλŠ”λ‹€.
  2. μ—”ν‹°ν‹° 이름
    • SELECT c FROM 뒀에 λ‚˜μ˜€λŠ” Category λŠ” μ—”ν‹°ν‹° 이름이닀.
    • @Entity(name="Category") 둜 μ„€μ •ν•œ 이름이닀.
    • ν•΄λ‹Ή 속성을 μƒλž΅ν•˜λ©΄ κΈ°λ³Έκ°’μœΌλ‘œ 클래슀 이름을 μ‚¬μš©ν•œλ‹€.
  3. 별칭
    • SELECT c FROM Category c μ—μ„œ c λŠ” 별칭이닀.
    • JPQL μ—μ„œ μ—”ν‹°ν‹°μ˜ 별칭을 ν•„μˆ˜μ μœΌλ‘œ λͺ…μ‹œν•΄μ•Ό ν•œλ‹€.
    • 별칭을 λͺ…μ‹œν•˜λŠ” AS ν‚€μ›Œλ“œλŠ” μƒλž΅ κ°€λŠ₯ν•˜λ‹€.

참고자료

https://victorydntmd.tistory.com/205