[자바 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 |
댓글