[JPA] JPQL

배지원·2022년 11월 15일
0

SpringBoot

목록 보기
8/11

JPQL

  • JPA에서 제공하는 메서드 호출만으로는 섬세한 쿼리 작성이 불가능하여 이를 보완하고자 JPQL이 탄생함
  • JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공
  • SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN지원
  • JPQL은 엔티티 객체를 대상으로 쿼리
  • SQL은 데이터베이스 테이블을 대상으로 쿼리
  • 예를 들어 정리하자면 기존 JPA의 SQL은 findById(), findAll(), Delete() 등 테이블을 기준으로 기본적인 값만 사용가능했다면, JPQL은 조건문이라던지 원하는 범위를 지정해서 좀 더 세부적으로 데이터를 찾을 수 있게 할 수 있는 것이다.(검색 기능을 할때 사용하기 좋음)
    간단한 예시
List<Member> result = em.createQuery("select m from Member as m", Member.class) // Member객체로 반환
			.setFirstResult(5)
            .setMaxResults(8)
            .getResultList();

이처럼 JPQL은 객체를 대상으로 검색하는 객체 지향 쿼리이다.

  • SQL을 추상화해서 특정 데이터베이스 SQL에 의존X
  • JPQL을 한마디로 정의하면 객체 지향 SQL
profile
Web Developer

0개의 댓글