[Spring JPA #8] JPA Query

2021. 3. 25. 03:19 Spring Data/Spring Data JPA

| 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);

 

https://www.inflearn.com/course/스프링-데이터-jpa



출처: https://engkimbs.tistory.com/819?category=772527 [새로비]