JPA

객체지향 쿼리 소개(feat. JPQL)

쿠카이든 2022. 6. 14. 15:50
728x90
  • EntityManager.find() 메소드를 사용하면 식별자로 엔티티 하나를 조회할 수 있다. 이렇게 조회한 엔티티에 객체 그래프 탐색을 사용하면 연관된 엔티티들을 찾을 수 있다. 이 둘은 가장 단순한 검색 방법이다.
    • 식별자로 조회 EntityManager.find()
    • 객체 그래프 탐색(예: a.getB().getC())
  • ORM을 사용하면 데이터베이스 테이블이 아닌 엔티티 객체를 대상으로 개발하므로 검색도 테이블이 아닌 엔티티 객체를 대상으로 하는 방법이 필요하다.
  • JPQL은 이런 문제를 해결하기 위해 만들어졌는데 다음과 같은 특징이 있다.
    • 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리다.
    • SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다.
  • JPQL은 엔티티 객체를 대상으로 하는 객체지향 쿼리다.
  • JPQL을 사용하면 JPA는 이 JPQL을 분석한 다음 적절한 SQL을 만들어 데이터베이스를 조회한다. 그리고 조회한 결과로 엔티티 객체를 생성해서 반환한다.

출처 : Java 표준 ORM JPA 프로그래밍 (저자 김영한)

 

728x90

'JPA' 카테고리의 다른 글

페이징 API  (0) 2022.06.15
프로젝션 NEW 명령어  (0) 2022.06.14
지연 로딩(Lazy Loading) - feat. 프록시  (0) 2022.06.14
임베디드 타입(@Embeddable, @Embedded)  (0) 2022.06.13
@MappedSuperclass  (0) 2022.06.13