자바 ORM 표준 JPA 프로그래밍(인프런)

Ch11. 객체지향 쿼리 언어2(중급 문법) - Named 쿼리

webmaster 2021. 12. 18. 13:02
728x90
  • 미리 정의해서 이름을 부여해두고 사용하는 JPQL 
  • 정적 쿼리 
  • 어노테이션, XML에 정의 
  • 애플리케이션 로딩 시점에 초기화 후 재사용
  • 애플리케이션 로딩 시점에 쿼리를 검증

NamedQuery 작성
createNamedQuery로 사용하면된다.
에러가 발생하면 런타임시에 에러를 잡을수있다.

  • @NamedQuery를 통해 NamedQuery를 작성할 수 있다.
    • 애플리케이션 로딩 시점에 미리 파싱 하여 오류 여부를 파악한다.
    • 가장 좋은 에러 1) 컴파일 2) 어플리케이션 실행시점 3) 실제 이벤트 동작 시점
  • createNamedQuery를 통해 NamedQuery을 이름을 지정하여 사용하면 된다.

Named 쿼리 - XML에 정의

NamedQuery를 XML 파일에 저장하여, XML파일에 쿼리들을 지정

  • XML이 항상 우선권을 가진다.
  • 애플리케이션 운영 환경에 따라 다른 XML을 배포할 수 있다
  • SpringDataJPA에서의 @Query로 사용하는 jpql 같은 경우 Spring에서 해당 쿼리를 다 Named쿼리로 등록하기 때문에 애플리케이션 로딩 시점에 에러를 잡을 수 있는 것이다.
728x90