본문 바로가기
Spring/ORM

2. JPA 시작하기

by wch_t 2023. 8. 29.

1. 초기 설정

1) pom.xml

- Maven 프로젝트의 구성을 정의하는 XML 파일이다.

   cf. Maven : Gradle과 같이 프로젝트 빌드, 종속성 관리, 배포 등을 자동화하는 빌드 도구

 

pom.xml

 

 

 

2) persistence.xml

- JPA를 사용할 때, 데이터베이스 연결테이블과 엔티티 클래스 간의 매핑을 설정하는 XML 파일이다.

persistence.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