dev/JPA 기본
Named 쿼리 (쿼리에 이름 붙여 사용하기)
dev_0hoon
2024. 2. 22. 16:34


@Entity
@NamedQuery(
name= "Member.findByUsername",
query = "select m from Member m where m.username = :username"
)
public class Member extends BaseEntity{
List<Member> resultList = em.createNamedQuery("Member.findByUsername",Member.class)
.setParameter("username" , memberA.getUsername()).getResultList();
for (Member o : resultList) {
System.out.println("Member " + o.getUsername());
}
이런식으로 사용이 가능하다.
사용하기 좋은 이유는 서버가 기동되기 전에 미리 SQL을 파싱하게 된다. 틀린 쿼리의 경우 먼저 오류 메세지를 던져준다.

이렇게 xml에서도 설정 가능 (xml이 먼저 우선권을 가짐)