Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Docker
- 백엔드
- mapping
- 스터디
- backenddeveloper
- goorm
- MSA
- 개발자
- 자격증
- spring
- DynamoDB
- s3
- sqs
- codebuild
- Redis
- 오블완
- 티스토리챌린지
- backend
- ec2
- aws
- QueryDSL
- rds
- orm
- serverless
- jpa
- Spring Boot
- CICD
- CodeCommit
- codedeploy
- kakao
Archives
- Today
- Total
gony-dev 님의 블로그
[JPA] 자바 ORM 표준 JPA 프로그래밍 - 영속성 관리 본문
JPA에서 가장 중요한 것 2가지는
객체와 관계형 데이터베이스 매핑(=ORM)
영속성 컨텍스트
이다!
영속성 컨텍스트
영속성 컨텍스트란 "엔티티를 영구 저장하는 환경이다"
ex. EntityManager.persist(entity);
1. 엔티티 매니저와 영속성 컨텍스트
- 영속성 컨텍스트는 사실 논리적인 개념이며, 물리적 개념인 EntityManager를 통해 영속성 컨텍스트에 접근한다.
2. J2SE 환경
- Java SE로 가장 보편적으로 쓰이는 자바 API 집합체라고한다.
- 이를 통해 EntityManager와 PersistenceContext를 1대1로 매핑할 수 있다.
3. 엔티티의 생명주기
- 생명주기는 비영속과 영속, 준영속, 삭제로 나뉜다.
- 비영속은 영속성 컨텍스트와 전혀 상관없는 관계 상태를 말한다. 즉 객체를 생성한 상태를 의미한다.
- 영속은 영속성 컨텍스트에 의해 관리되는 상태를 말한다. 즉 객체를 저장한 상태를 의미한다.
- 준영속은 영속성 컨텍스트에 저장되었다가 분리된 상태를 의미한다. 그래서 '준'이라고 써붙히는 것 같다.
- 삭제는 말 그대로 삭제된 상태를 의미한다.
이해가 안된다면 그림으로 이해하면 쉬울 것이다!
※ 다음과 같은 상태를 갖는 영속성 컨텍스트를 사용한다면 아래와 같은 이점을 얻을 수 있다.
- 1차 캐시 사용
- 동일성 보장
- 트랜잭션을 지원하는 쓰기 지연
- 변경 감지 용이
- 지연 로딩 채택
다음 블로그는 영속성 관리 중 플러시와 준영속 상태에 대해 게시해 보겠다.
'Spring > JPA' 카테고리의 다른 글
[JPA] 고급 매핑 (0) | 2024.11.10 |
---|---|
[JPA] 자바 ORM 표준 JPA 프로그래밍 - 다양한 매핑관계 (1) | 2024.09.04 |
[JPA] 자바 ORM 표준 JPA 프로그래밍 - 엔티티 매핑 (0) | 2024.08.28 |
[JPA] 자바 ORM 표준 JPA 프로그래밍 - 영속성 관리(플러시와 준영속 상태) (0) | 2024.08.12 |
[JPA] 자바 ORM 표준 JPA 프로그래밍 - JPA를 사용해야 하는 이유? (0) | 2024.07.29 |