JPA

Spring data JPA 쿼리 생성 기능

쿠카이든 2022. 6. 19. 21:32
728x90
JPA vs. Spring Data JPA 비교 

순수 JPA

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

public interface MemberRepository extends JpaRepository<Member, Long> {
	List<Member> findByUsernameAndAgeGreaterThan(String username, int age);
}
  • 스프링 데이터 JPA는 알아서 메소드 이름을 분석해서 JPQL을 생성하고 실행해주므로 다음과 같이 간결하게 코드를 줄일 수 있다.
  • 대신 필터 조건에 부합하지 않는 키워드는 사용할 수 없으니 주의해야 한다.

스프링 데이터 JPA 쿼리 생성 기능

  • 위의 표를 참고하여 쿼리를 생성한다.

 

참고 : JAVA 표준 ORM JPA 프로그래밍 (저자 김영한)

참고2 : https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation

728x90