JPA JPQL- Named 쿼리

named query

  • 미리 정의해서 이름을부여 후 사용
  • 정적 쿼리만 가능
  • 어노테이션, xml에 정의
  • 애플리켕시녀 로딩 싲머에 초기화 후 사용
  • 애플리케이션 로딩 시점에 쿼리를 검증
@Entity
@NamedQuery(
        name = "Member.findByUsername",
        query = "select m from Member m where m.username = :username"
)
public class Member {
    ...
}
  • 지정된 쿼리 실행
List<Member> resultList =
        em.createNamedQuery("Member.findByUsername", Member.class)
            .setParameter("username","member1")
            .getResultList();

특징

  • xml로 설정할 경우 xml이 우선권
  • spring data jpa에서 repository의 @Query는 named query다.