본문 바로가기
공부일기/JPA

JPA 공부일기(13)

by 고다나 2023. 3. 26.
[자바 ORM 표준 JPA 프로그래밍 - 기본편]
섹션 10. 객체지향 쿼리 언어1 - 기본 문법: 소개

 

JPA는 다양한 쿼리 방법을 지원 → JPQL, JPA Criteria, QueryDSL, Native Sql, JDBC API 직접 사용, SpringJdbcTemplate, MyBatis와 함께 사용

 

JPQL

- JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리언어 제공.

- JPQL은 엔티티 객체를 대상으로 쿼리, SQL은 데이터베이스 테이블을 대상으로 쿼리.

- SQL을 추상화해서 특정 데이터베이스 SQL에 의존x.

 

Criteria

- 문자열이 아닌 자바코드로 JPQL을 작성할 수 있음.

- JPQL 빌더역할.

- JPA 공식기능.

- 장점: 동적 쿼리 작성 편리. 컴파일 시점에 문법 오류를 찾을 수 있음.

- 단점: 너무 복잡하고 실용성이 없음. Criteria 대신에 QueryDSL 사용 권장.

 

QueryDSL

- 문자열이 아닌 자바코드로 JPQL을 작성할 수 있음.

- JPQL 빌더역할.

- 장점: Criteria 장점과 동일.

- 실무사용 권장.

 

NativeSQL

- JPA가 제공하는 SQL을 직접 사용.
- JPQL로 해결할 수 없는 특정 데이터베이스에 의존적인 기능.

 

JDBC API 직접 사용, SpringJdbcTemplate, MyBatis와 함께 사용

- JPA를 사용하면서 JDBC 커넥션을 직접 사용하거나, SpringJdbcTemplate, MyBatis 등을 함께 사용 가능.
- 영속성 컨텍스트를 적절한 시점에 강제로 플러시 필요. (flush는 commit, query 날릴 때만 실행됨.)

'공부일기 > JPA' 카테고리의 다른 글

JPA 공부일기(15)  (0) 2023.04.04
JPA 공부일기(14)  (0) 2023.03.27
JPA 공부일기(12)  (0) 2023.03.21
JPA 공부일기(11)  (0) 2023.03.20
JPA 공부일기(10)  (0) 2023.02.09

댓글