본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


JPA/Spring data JPA

Spring Data JPA Named query 기능

반응형

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