[Spring JPA #8] JPA Query
| JPQL (HQL)
- Java Persistence Query Language / Hibernate Query Language 를 의미하는 것으로써 데이터 베이스 테이블이 아닌, 엔티티 객체 모델 기반으로 쿼리를 작성하는 SQL과 유사한 구문입니다.
- JPA 또는 Hibernate가 해당 쿼리를 SQL로 변환해서 실행하게 됩니다.
TypedQuery<Post> query = entityManager.createQuery("SELECT p FROM Post AS p", Post.class);
List<Post> posts = query.getResultList();
posts.forEach(System.out::println);
| Criteria
- JPA에서 제공하는 타입 세이프한 쿼리로써 JPQL에서 오타가 났을 경우 이것을 체크하지 못하는 문제를 방지합니다.
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Post> query = builder.createQuery(Post.class);
Root<Post> root = query.from(Post.class);
query.select(root);
| Native Query
- DBMS에서 제공하는 SQL 쿼리를 실행하는 방법입니다.
TypedQuery<Post> query = entityManager.createQuery("SELECT p FROM Post AS p", Post.class);
List<Post> posts = query.getResultList();
posts.forEach(System.out::println);
'Spring Data > Spring Data JPA' 카테고리의 다른 글
[Spring JPA #12] 스프링 데이터 Null 체크 (0) | 2021.03.25 |
---|---|
[Spring JPA #11] 스프링 데이터 리포지터리 인터페이스 정의하기(Spring Repository Interface) (0) | 2021.03.25 |
[Spring JPA #10] 스프링 데이터 Common 리포지터리(Repository) (0) | 2021.03.25 |
[Spring JPA #9] 스프링 데이터 JPA 원리 및 스프링 데이터 구성 요소 (0) | 2021.03.25 |
[Spring JPA #7] JPA Fetch (0) | 2021.03.25 |
[Spring JPA #6] JPA Cascade (0) | 2021.03.25 |
[Spring JPA #5] JPA 엔티티 상태 (0) | 2021.03.25 |
[Spring JPA #4] JPA 관계 매핑 (0) | 2021.03.25 |