2. JPA 시작하기

2023. 8. 29. 14:53·Spring/ORM

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
'Spring/ORM' 카테고리의 다른 글
  • 5. 연관관계 매핑 기초
  • 4. 엔티티 매핑
  • 3. 영속성 관리 - 내부 동작 방식
  • 1. JPA 소개
wch_t
wch_t
  • wch_t
    끄적끄적(TIL)
    wch_t
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (169)
      • Architecture (0)
      • Algorithm (67)
        • Math (5)
        • Simulation (1)
        • Data Structure (4)
        • DP (7)
        • Brute Fource (10)
        • Binary Search (6)
        • Greedy (2)
        • Graph (11)
        • Mst (1)
        • Shortest path (10)
        • Two Pointer (1)
        • Tsp (3)
        • Union Find (2)
        • Mitm (1)
      • CS (2)
        • 데이터베이스 (5)
        • 네트워크 (5)
      • DB (7)
      • DevOps (15)
        • AWS (9)
        • Docker (1)
        • CI-CD (5)
      • Error (1)
      • Project (0)
        • kotrip (0)
      • Spring (59)
        • 끄적끄적 (5)
        • 기본 (9)
        • MVC 1 (7)
        • MVC 2 (11)
        • ORM (8)
        • JPA 1 (7)
        • JPA 2 (5)
        • Spring Data Jpa (7)
      • Test (2)
      • TIL (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    docker: not found
    form_post
    애플
    scope
    aws secrets manager
    백준 17299 파이썬
    TempTable
    백준 3015 파이썬
    Sxssf
    apache poi
    Merge
    docker
    Jenkins
    view algorithm
    spring-cloud-starter-aws-secrets-manager-config
    백준 17289 파이썬
    spring-cloud-starter-bootstrap
    response_mode
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
wch_t
2. JPA 시작하기
상단으로

티스토리툴바