1. 초기 설정
1) pom.xml
- Maven 프로젝트의 구성을 정의하는 XML 파일이다.
cf. Maven : Gradle과 같이 프로젝트 빌드, 종속성 관리, 배포 등을 자동화하는 빌드 도구
2) persistence.xml
- JPA를 사용할 때, 데이터베이스 연결 및 테이블과 엔티티 클래스 간의 매핑을 설정하는 XML 파일이다.
2. 데이터베이스 방언
- JPA는 특정 데이터베이스에 종속 X
- 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름
ex. 가변 문자 : MySQL - VARCHAR, Oracle - VARCHAR2
- 방언
→ SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 기능
- direct
→ 데이터베이스에 대한 SQL 방언을 설정하는 매개 변수
JPA가 데이터베이스 간의 차이를 추상화하고 처리하기 위한 기능
3. JPA 구동 방식
1) 트랜잭션
1) 'persistence-unit name = "_"' 설정 정보를 갖고, EntityManagerFactory 생성하기
2) EntityManagerFactory로 EntityManager 생성하기
3) EntityManger로 트랜잭션 만들기
2) Entity
@Entity : 데이터베이스 테이블과 매핑되는 자바 객체
@Id : 데이터베이스 Primary Key와 매핑
*주의
- EntityManagerFactory는 하나만 생성해서 애플리케이션 전체에서 공유
- EntityManager는 쓰레드 간에 공유 X (close 필수)
- JPA의 모든 데이터 변경은 트랜잭션 안에서 실행
3) JPQL
- 가장 단순한 조회 방법
- EntityManager.find()
- 객체 그래프 탐색(a.getB().getC())
- JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공
- JPA를 사용하면, DB 테이블이 아닌 entity 객체를 중심으로 개발
( 검색 쿼리를 작성할 때도, 테이블이 아닌 entity 객체를 대상으로 검색 )
- 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능
- 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요
'Spring > ORM' 카테고리의 다른 글
6. 다양한 연관관계 매핑 (0) | 2023.09.03 |
---|---|
5. 연관관계 매핑 기초 (0) | 2023.09.02 |
4. 엔티티 매핑 (0) | 2023.09.02 |
3. 영속성 관리 - 내부 동작 방식 (0) | 2023.08.29 |
1. JPA 소개 (0) | 2023.08.29 |