관리 메뉴

제뉴어리의 모든것

@Query 어노테이션에서 Native SQL 사용법 본문

MySql

@Query 어노테이션에서 Native SQL 사용법

제뉴어리맨 2021. 1. 14. 10:15

@Query어노테이션, JPQL(Java Persistence Query Language)

Programming/Java & Spring2019. 4. 17. 14:33

 

@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을 사용하면 된다. 



출처: https://effectivecode.tistory.com/1051 [Mr.후]

'MySql' 카테고리의 다른 글

프로시저로 반복 데이터 Insert  (0) 2021.02.12
외래기 지정시 옵션  (0) 2021.02.10
[SQL] GROUP, HAVING  (0) 2021.01.21
LEFT JOIN 과 RIGHT JOIN  (0) 2021.01.20
[Maria DB] 유용 query  (0) 2021.01.13