JPQL

9mond·2023년 10월 11일
0
post-thumbnail

1. 객체지향 쿼리 언어(JPQL)

1-1. JPA는 다양한 쿼리 방법을 지원한다.

  • JPQL
  • QueryDSL
    ----------------------------------------
  • JPA Criteria -> 거의 사용 안함(유지보수가 너무 힘듬)
  • 네이티브 SQL
  • JDBC API 직접 사용
  • MyBatis
  • SpringJdbcTemplate

1-2. JPQL 소개

  • 단순한 조회 : EntityManager.find();
    -> 나이가 18살 이상인 회원을 모두 검색하고 싶다면?

1-3. JPQL이란

  • JPA를 사용하면 엔티티 객체를 중심으로 개발
  • 문제는 검색 쿼리
  • 검색을 할때도 테이블이 아닌 엔티티 객체를 대상으로 검색
  • 모든 DB데이터를 객체로 변환해서 검색하는 것은 불가능
  • JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공
  • SQL 문법이 유사 -> select, from, where, group by, having, join 지원
  • JPQL 엔티티 객체를 대상으로 쿼리 작성
  • SQL은 데이터 베이스 테이블을 대상으로 쿼리 작성
  • JPQL(Java Persistence Query Language)
  • JPQL을 한마디로 정의하면 객체 지향 SQL문이다.

1-4. JPQL 문법

  • 대소문자 구분
    -> 엔티티와 속성은 대소문자 구분
    -> JPQL 키워드는 구분하지 않는다.
  • 엔티티 이름
    -> 테이블명 대신 엔티티명을 사용
    -> 클래스명 말고 특정 이름을 지정하고 싶을 때 : @Entity(name="...")
    -> 지정하지 않을 시 클래스명을 기본 값으로 사용(추천)
  • 별칭(알리아스)은 필수
    -> JPQL은 별칭 필수
    -> AS(알리아스)는 생략 가능
profile
개발자

0개의 댓글

관련 채용 정보