반응형
@Query
- JPA에 정의된 키워드를 조합하면 특정조건에 해당하는 데이터를 원하는 형태대로 가지고 올 수 있습니다. 하지만 데이터베이스에 종속적인 문법을 사용해야 할 때나 Entity 간의 명시적으로 들어나지 않는 관계간의 조인, 데이타 조회 속도 향상등의 목적으로 직접 쿼리를 작성할 수 있는 방법을 제공하고 있습니다.
- @Query 속성중에 nativeQuery 속성을 true로 설정하지 않았따면 기본적으로 JPQL 문법으로 동작이 됩니다.
- JPQL 문법은 JPA 에서 사용되는 언어이며 쿼리 구문과 유사하나 Table이 아닌 Entity를 기준으로 데이터를 조회한다는 것이 다릅니다.
NativeQuery란?
- JPA는 SQL이 지원하는 대부분의 문법과 SQL 함수들을 지원하지만 특정 데이터베이스에 종속적인 기능은 잘 지원하지 않는다. 하지만 때로는 특정 데이터베이스에 종속적인 기능이 필요할 수도 있다. 다양한 이유로 JPQL을 사용할 수 없을 때, JPA는 SQL을 직접 사용할 수 있는 기능을 제공하는데 이것을 네이티브 SQL(네이티브쿼리)라 한다.
- 즉, 사용자가 직접 데이터베이스에 날리는 쿼리를 작성하는 것이다.
- NativeQuery는 엔티티를 조회할 수 있고 JPA가 지원하는 영속성 컨텍스트의 기능을 그대로 사용할 수 있다.
반응형
'개발 > JPA' 카테고리의 다른 글
[JPA] Auditing - 공통 도메인 작업 (0) | 2023.09.10 |
---|---|
[JPA] @MappedSuperclass (0) | 2023.09.10 |
[JPA] Cascade (1) | 2023.09.10 |
[JPA] @OneToMany orphanRemoval (0) | 2023.09.10 |
[JPA] @OneToMany 단방향 매핑의 단점 (0) | 2023.09.10 |