쿼리 메소드 - Named 쿼리

박찬우·2024년 1월 11일

스프링 데이터 JPA

목록 보기
3/18

Named 쿼리

  • 메소드 이름으로 JPA NamedQuery 호출
  • 스프링 데이터 JPA는 선언한 "도메인 클래스 + .(점) + 메서드 이름"으로 Named 쿼리를 찾아서 실행
  • 만약 실행할 Named 쿼리가 없으면 메서드 이름으로 쿼리 생성 전략을 사용한다.
  • 필요하면 전략을 변경할 수 있지만 권장하지 않는다.
@NamedQuery(
        name="Member.findByUsername",
        query = "select m from Member m where m.username = :username"
)
public class Member {
    @Id
    @GeneratedValue
    @Column(name = "member_id")
    private Long id;

    private String username;

    private int age;
// JPA
public List<Member> findByUsername(String username) {
	return em.createNamedQuery("Member.findByUsername")
			.setParameter("username", username)
			.getResultList();
}

// Spring Data JPA
@Query(name = "Member.findByUsername")
List<Member> findByUsername(@Param("username") String username);
profile
진짜 개발자가 되어보자

0개의 댓글