Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

@Query, repository method에 쿼리 정의 본문

인프런/[인프런] Spring Data JPA

@Query, repository method에 쿼리 정의

Seung__ 2021. 8. 28. 12:46

1. @Query


SpringDataJPA를 활용하여 repository의 method에 바로 쿼리를 정의하자.

실무에서 많이 쓰임

 

기존 SpringDataJPA에서 제공하는 기능은 조건이 너무 길어지면 method이름이 길어졌다.

@Query를 사용하면 method이름은 간략히, 쿼리는 여러 조건을 추가할 수 있다.

public interface MemberRepository extends JpaRepository<Member, Long> {

    public List<Member> findMemberByUserNameAndAgeGreaterThan(String userName, int age);

    @Query(name = "Member.findByUserName")
    List<Member> findByUserName(@Param("userName") String userName);

    @Query("select m from Member m where m.userName = :userName and m.age = :age")
    List<Member> findUser(@Param("userName") String userName, @Param("age") int age);

}
  @Test
    public void testQuery(){
        Member member1 = new Member("aaa", 10);
        Member member2 = new Member("bbb", 20);
        memberRepository.save(member1);
        memberRepository.save(member2);

        List<Member> result = memberRepository.findUser("aaa", 10);
        Assertions.assertThat(result.get(0).getUserName()).isEqualTo("aaa");
        Assertions.assertThat(result.get(0).getAge()).isEqualTo(10);

    }

 

2. 장점


오타가 있으면 애플리케이션 실행 시점에 오류가 발생함. 크

우리가 작성한 쿼리는 정적 쿼리로 애플리케이션 실행 시점에 파싱하여 SQL을 만들어 놓음.

이때 문법 오류가 있는지 없는지 체크 가능.

 

 

3. GitHub : 210828 @Query


 

GitHub - bsh6463/SpringDataJpa

Contribute to bsh6463/SpringDataJpa development by creating an account on GitHub.

github.com

 

'인프런 > [인프런] Spring Data JPA' 카테고리의 다른 글

@Query, 파라미터 바인딩  (0) 2021.08.29
@Query, 값, DTO 조회하기  (0) 2021.08.29
JPA NamedQuery  (0) 2021.08.28
쿼리 메서드  (0) 2021.08.28
공통 인터페이스 설정, 적용, 분석  (0) 2021.08.28
Comments