반응형
Named query 기능
-엔티티에 쿼리를 지정해놓고 메서드에서 불러다가 사용할 수 있다.
1.순수 JPA NamedQuery 기능
엔티티에 @NamedQuery 어노테이션을 통해 쿼리를 지정해준다 name에는 메소드명 , query에는 사용할 쿼리
리파지토리에 메서드를 만들어주고 createNamedQuery를 통해 엔티티에 지정해놓은 NamedQuery를 불러올 수 있다.
위에 메서드를 실행한 결과 쿼리다 유저네임이 where 절에 들어갔다.
스프링 데이터 JPA에서는 더 편리하게 위의 기능을 사용할 수 있다.
1.스프링 데이터 JPA에서 NamedQuery 사용
리파지토리 인터페이스에서 @Query를 사용해 엔티티에 지정해놓은 @NamedQuery를 불러온다
파라미터를 불러올 경우 @Param을 통해 파라미터를 불러올 수 있다 엔티티에 지정 해놓은 것과 같아야 한다.
관례로 JpaRepository에 지정해 놓은 엔티티에서 먼저 NamedQuery를찾아서 작동하기 때문에 @Query가 없어도 동작한다 만약 NamedQuery가 없다면 Query Method 기능으로 작동한다.
장점
-쿼리에 문제가 있다면 컴파일 할때 에러를 발생시킨다.
*실무에선 NamedQuery 보단 리파지토리 메소드에 쿼리를 바로 정의하는 방식을 더 많이 사용한다.
반응형
'JPA > Spring data JPA' 카테고리의 다른 글
Spring Data JPA 반환타입 (0) | 2020.11.20 |
---|---|
Spring Data JPA @Query -컬렉션 파라미터 바인딩 (0) | 2020.11.20 |
Spring Data JPA @Query-엔티티 조회 (0) | 2020.11.20 |
Spring Data JPA query method 기능 (0) | 2020.11.20 |
Spring Data JPA (0) | 2020.11.20 |