[내배캠/TIL(6/14)]DATA JPA 메소드 이름으로 함수 만들기

손홍서·2022년 6월 14일
0

Spring

목록 보기
9/24

day37 TIL

DATA JPA 메소드 이름으로 함수 만들기

예시로는 이름이 같고, 나이가 입력값보다 큰 값들을 가져오는 것이다.

@Repository
public class MemberJpaRepository {

    @PersistenceContext
    private EntityManager em;
    
    ...

    public List<Member> findByUsernameAndAgeGreaterThan(String username, int age) {
        return em.createQuery("select m from Member m" +
                        " where m.username = :username" +
                        " and m.age > :age")
                .setParameter("username", username)
                .setParameter("age", age)
                .getResultList();
    }
}

    }

그냥 jpa의 repository 코드
사실 이렇게 jpql을 통해 작성하는 것도 엄청 복잡하지는 않지만 오타가 나기 쉽다.

public interface MemberRepository extends JpaRepository<Member, Long> {
    List<Member> findByUsername(String username);
    List<Member> findByUsernameAndAgeGreaterThan(String username, int age);
}

data jpa 코드 마법같다... 변수이름들만 신경쓰면 내가 생각하는 대부분의 쿼리는 구현 없이 만들어준다.
우와...!
findBy(조회) username(조건:같은) and(그리고) age greaterThan(조건:큰)

아래 링크를 들어가면 더 자세한 활용법을 알 수 있다. 나도 문서보면서 더 잘 활용해야겠다.
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods

profile
Hello World!!

0개의 댓글