JPA와는 무관하게, 실제 DB 쿼리문을 작성할 때 사용한다.
@Query 맨 뒤에 nativeQuery=true라고 설정만 해주면 된다.
또한 엔티티를 조회하던 JPQL 문법과 달리 DB에서 사용하는 테이블 기준 쿼리를 작성하면 된다.
- nativeQuery는 JPA에서 제공하지 않는 정보들을 조회할 수 있고, Update를 한번에 처리할 수 있는 장점이 있다.
- 테이블에서 특정 컬럼만 가져오거나, 여러 테이블을 조인하거나 할 때, Native Query를 사용하게 될 겁니다.
JPA(Java Persistence API)는 자바 ORM 기술에 대한 API 표준 명세입니다.
- 결국은 JPA는 객체와 관계형 데이터베이스를 매핑하는 표준 기술을 이용해서 데이터베이스에 요청을 보내고 응답을 받기 위한 방법을 의미
Object-Relational Mapping으로 객체와 관계형 데이터베이스를 자동으로 매핑(연결)시키는 방법이다.
JPQL은 엔티티 객체를 조회하는 객체지향 쿼리다.
테이블을 대상으로 쿼리하는 것이 아니라 엔티티 객체를 대상으로 쿼리한다.
- JPA에서 제공하는 메소드 호출만으로 섬세한 쿼리 작성이 어렵다는 문제에서 JPQL이 탄생된 것이다.
참고자료
https://hahahoho5915.tistory.com/16
https://escapefromcoding.tistory.com/442
https://cano721.tistory.com/185#JPA%EB%9E%80
https://lkhlkh23.tistory.com/125