소프트웨어학부/스프링 부트 3 개발자 되기 자바 편

05. 데이터베이스 조작이 편해지는 ORM

Mt.Hwang 2025. 3. 29. 16:45

ORM

JPA

엔티티

엔티티 매니저

엔티티 매니저 팩토리

영속성 컨텍스트 특징

 1. 1차 캐시

 2. 쓰기 지연

 3. 변경 감지

 4. 지연 로딩

엔티티의 상태

 1. 분리

 2. 관리

 3. 비영속

 4. 상태

 

 

하이버네이트

스프링 데이터 JPA

 

 

ORM

데이터베이스

DBMS (DataBase Management System)

관계형 DBMS (RDBMS, relational DMBS)

 1. 행

 2. 열

H2

 

 

DB 용어

 1. 테이블 (table)

 2. 행 (row)

 3. 열 (column)

 4. 기본키 (primary key)

 5. 쿼리 (query)

ORM (Object-Relational Mapping)

ORM 장점

 1. SQL 직접 작성 x

 2. 객체지향적 코드 작성

 3. DBS에 대한 종속성 적음

 4. 매핑하는 정보가 명확

ORM 단점

 1. 프로젝트의 복잡성 올라감

 2. 복잡하고 무거운 쿼리는 해결 불가능

영속성 (Persistence)

 

 

JPA (Java Persistence API)

하이버네이트 (hibernate)

 

 

엔티티 (Entity)

엔티티 매니저 (entity menager)

엔티티 매니저 팩토리 (entity manager factory)

영속성 컨텍스트

 1. 1차 캐시

 2. 쓰기 지연

 3. 변경 감지

 4. 지연 로딩

프록시 엔티티 매니저

 

 

엔티티 상태

 1. 분리 (detached)

 2. 관리 (managed)

 3. 비영속 상태 (transient)

 4. 삭제된 (removed)

persist()

detach()

remove()

스프링 데이터 (Spring data)

 

 

 

스프링 데이터 JPA

JpaRepository 사용하기

 1. 상속

 2. <엔티티명, 기본키타입>

 3. CRUD 사용

 1. save()

 2. findById()

 3. findAll()

 4. deleteById()

@Entity

@Id

엔티티의 접근 제어자

 

 

@GeneratedValue

자동키 생성 설정 방식

 1. AUTO

 2. IDENTITY

 3. SEQUENCE

 4. TABLE

@Column

@Coulumn 애너테이션의 속성

 1. name

 2. nullable

 3. unique

 4. columnDefinition

 

 

리포지토리

 

 

H2

ORM
JPA
하이버네이트

엔티티

엔티티 매니저

엔티티 매니저 팩토리

프록시 엔티티 매니저

영속성 컨텍스트

영속성 컨텍스트 특징

 1. 1차 캐시

 2. 쓰기 지연

 3. 변경 감지

 4. 지연 로딩

 

 

엔티티 상태

 1. 분리 상태

 2. 관리 상태

 3. 비영속 성태

 4. 삭제된 상태

엔티티 관리 메서드

 1. persist()

 2. detach()

 3. remove()

스프링 데이터 JPA

JpaRepository

JpaRepository 메서드

 1. save()

 2. findById()

 3. findAll()

 4. deleteById()

 

 

 

@Entity

@Id

@GeneratedValue

자동키(기본키) 생성 방식

 1. AUTO

 2. IDENTITY

 3. SEQUENCE

 4. TABLE

@Column

@Column의 속성

 1. name

 2. nullable

 3. unique

 4. columnDefinition