Named Query
- 쿼리에 이름을 붙일 수 있는 기능
- 정적인 쿼리
- 어노테이션 혹은 XML에 정의
- 애플리케이션 로딩 시점에 초기화 후 재사용함
- ➡️ ‼️ 애플리케이션 로딩 시점에 쿼리를 검증할 수 있음 ‼️
사용 예시
@Entity
@NamedQuery(
name = "Member.findByUsername", // 쿼리의 이름
query = "select m from Member m where m.username = :username" // 실행할 쿼리문
)
public class Member {
...
}
//main
...
// em.createNamedQuery로 호출
List<Member> resultList = em.createNamedQuery("Member.findByUsername", Member.class)
.setParameter("username", "회원3")
.getResultList();
System.out.println("---------------------");
for (Member s :
resultList) {
System.out.println(s);
}
System.out.println("---------------------");
...
실행 결과
Member{id=5, username='회원3', age=60}