dev/JPA 기본

Named 쿼리 (쿼리에 이름 붙여 사용하기)

dev_0hoon 2024. 2. 22. 16:34

인프런 - 김영한 JPA 강의 중

 

인프런 - 김영한 JPA 강의 중

@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을 파싱하게 된다. 틀린 쿼리의 경우 먼저 오류 메세지를 던져준다.

 

인프런 - 김영한 JPA 강의 중

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