반응형
@Query어노테이션, JPQL(Java Persistence Query Language)
이게 이건지 모르고 사용했는데 또 하나 알게 되었다.
public interface CustomerRepository extends JpaRepository<Customer, Integer> {
@Query("SELECT x FROM Customer x ORDER BY x.firstName, x.lastName")
List<Customer> findAllOrderByName();
}
JPA는 JPQL 뿐만 아니라 SQL도 사용할 수 있는데 스프링 데이터 JPA에서 다음과 같이 @Query에 nativeQuery=true 를 지정하면 SQL을 사용할 수 있다.
@Query(value="SELECT id, first_name, last_name FROM customers ORDER BY first_name, last_name", nativeQuery=true)
하지만 이렇게 SQL을 사용한다면 JPA의 장점을 활용할 수 없으며 기본으로 JPQL을 사용하고, 벤더에 의존하는 구문을 꼭 사용해야하는 복잡한 쿼리를 기술할 때만 SQL을 사용하면 된다.
반응형
'프로그래밍 > Spring' 카테고리의 다른 글
스프링 MVC Location 헤더에 리소스URI 설정 예제 (0) | 2019.04.19 |
---|---|
JPA를 이용한 페이징 처리 구현 예제 (0) | 2019.04.17 |
Log4JDBC로 SQL 로그 출력을 위한 설정 (0) | 2019.04.17 |
H2 파일 데이터베이스를 사용하도록 설정 (0) | 2019.04.17 |
JdbcTemplate 사용 예제 (0) | 2019.04.17 |