Yebali

Spring Data JPA의 Query Creation 본문

Spring

Spring Data JPA의 Query Creation

예발이 2021. 10. 11. 21:02

Query Creation 이란?

Spring Data JPA의 쿼리 매소드 기능 중 하나로
인터페이스를 정의하면 자동으로 쿼리를 생성해주는 기능이다.

예시 Entity

@Entity
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.createQuery("select m from Member m where m.user = :username", Member.class)
            .setParameter("username", username)
            .getResultList();
}

직접 JPQL로 쿼리를 작성해 주어야 하고 parameter도 매핑해주어야 한다.
Spring Data JPA는 이렇게 쿼리를 만드는 과정을 대신해준다.

Spring Data JPA

//== 컬랙션 조회 ==//
List<Member> findListByUsername(String username);

//== 단건 조회 ==//
Member findMemberByUsername(String username);

위처럼 단순히 인터페이스에서 매서드만 선언해주면 메서드명을 보고 자동으로 쿼리를 만들어
Member를 조회할 수 있게 해 준다.

 

만약 'username'이 일치하고 13살 이상의 유저를 찾고 싶다면 아래처럼 하면 된다.

List<Member> findByUsernameAndAgeGreaterThan(String username, int age);

이 기능은 엔티티의 필드 명이 변경되면 인터페이스에서 정의한 메서드 이름도 꼭 함께 변경해야 한다!

외의 자세한 기능은 Spring 공식 문서의 Query Creation 을 참고하면 된다.

'Spring' 카테고리의 다른 글

Spring Data JPA의 @Query 애너에티션  (0) 2021.10.11
Spring Data JPA의 Named Query  (0) 2021.10.11
Spring Data JPA를 이용한 CRUD  (0) 2021.10.11
Spring Data JPA란?  (0) 2021.10.11
Spring JPA의 OSIV  (0) 2021.10.11