코드 그라데이션

JPQL 소개 본문

Database/JPQL

JPQL 소개

완벽한 장면 2023. 8. 28. 19:05

 

JPA는 다양한 쿼리 방법을 지원

 

JPQL 소개

 

JPQL 

 

 

 

예시

JPAMAIN

public class JpaMain {
  public static void main(String[] args) {
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
    EntityManager em = emf.createEntityManager();

    EntityTransaction tx = em.getTransaction();
    tx.begin();

    try {
      List<Member> result = em.createQuery(
              "select m from Member m where m.username like '%kim% '", Member.class)
          .getResultList();

      tx.commit();
    } catch (Exception e) {
      tx.rollback();
      e.printStackTrace();
    } finally {
      em.close();
    }
    emf.close();
  }
}

 

실행 결과

 


Criteria 소개

 

단순 String 이면 동적 쿼리를 만들기가 엄청나게 어렵다.

이런식으로 엄청나게 복잡하게 가야 함.

띄어쓰기, 쉼표 같은 자잘한 것 신경쓰다가 버그나기 쉽다.

 

MyBatis의 장점은 동적쿼리를 짜기 편하다는 건데,

 

어쨌든 이런동적쿼리 짜기 문제를 해결하기 위해 나온 것이 Criteria이다.

 

Criteria

 

예시 코드 (별로 중요하지 않아서 실습 건너뜀)

 

QueryDSL 소개

 

예시코드 (추후 타 강의에서 소개 예정)

 

 

네이티브 SQL

 

예시코드

 

 

JDBC 직접 사용, SpringJdbcTemplate 등.

 

728x90

'Database > JPQL' 카테고리의 다른 글

서브 쿼리  (0) 2023.08.31
조인 (2) - ON 절  (0) 2023.08.30
조인 (1) - 내부 조인, 외부 조인, 세타 조인  (0) 2023.08.30
페이징 API  (0) 2023.08.30
프로젝션  (0) 2023.08.29
Comments