객체와 테이블 생성 및 매핑
- @Entity: JPA가 관리할 객체
- @Id: 데이터베이스 PK와 매핑
엔티티 매니저 팩토리, 엔티티 매니저, 트랜잭션
- EntityManagerFactory : EntityManager 생성
- EntityManager : Entity 관리
- EntityTransaction : 하나의 작업 단위
주의)
- 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유
- 엔티티 매니저는 스레드 간에 공유 X (사용하고 버려야 한다).
- JPA의 모든 데이터 변경은 트랜잭션 안에서 실행
JPQL 소개
- 가장 단순한 조회 방법
- EntityManager.find()
- 객체 그래프 탐색(a.getB().getC())
- JPA를 사용하면 엔티티 객체를 중심으로 개발
- 문제는 검색 쿼리
- 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색
- 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능
- 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요 → JPQL
JPQL 특징
- 객체 지향 SQL
- JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공
- SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원
- JPQL은 엔티티 객체를 대상으로 쿼리 ↔ SQL은 데이터베이스 테이블을 대상으로 쿼리
- 테이블이 아닌 객체를 대상으로 검색하는 객체 지향 쿼리
- 특정 데이터베이스 SQL에 의존 X
'JPA > 개념' 카테고리의 다른 글
[JPA] 프로젝트 환경설정 (0) | 2023.02.21 |
---|---|
[JPA] JPA 개념 (0) | 2023.02.20 |