❯ JPA(Java Persistence API)
자바에서 객체를 관계형 데이터베이스에 저장, 검색, 업데이트 및 삭제할 수 있는 API를 말한다.
Java 인터페이스로 사양이 정의되어있으며 이를 구현한 구현체를 통해 기능을 사용할 수 있다.
대표적인 구현체로는 Hibernate ORM, EclipseLink, OpenJPA, DataNucleus 등이 있다.
(그 중 Hibernate ORM을 학습할 예정)
❯ P(Persistence), Persistence Context(영속성 컨텍스트)
사전적으로 영속성, 지속성이라는 의미를 갖는다. 오랫동안 지속된다는 개념이다.
JPA에서는 Persistence Context(영속성 컨텍스트)를 통해 엔티티 객체의 영속성을 관리하게 된다.
1. 새로운 엔티티 객체가 생성되면 영속성 컨텍스트의 1차 캐시에 정보가 저장된다.
이 때 데이터베이스에 바로 추가되는것이 아니라 쓰기 지연 SQL 저장소(Write-behind SQL cache)*에 쿼리 형태로 등록된다.
2. 트랜잭션이 커밋되면 쓰기 지연 SQL 저장소에 저장된 내용이 데이터베이스에 반영되고 쓰기 지연 SQL 저장소가 비워진다.
* 쓰기 지연 SQL 저장소(Write-behind SQL cache): 엔티티 변경사항을 적절한 시점에 데이터베이스에 반영하기 위해 사용된다.
* Persistence Context는 트랜잭션 범위에서 동작한다. 트랜잭션을 커밋해야 영속성 컨텍스트가 가지고 있던 엔티티 객체의 변경사항이
데이터베이스에 반영된다.
'부트캠프 개발일기 > Spring MVC' 카테고리의 다른 글
51일차: Spring Data JPA(데이터 액세스 계층 구현) (0) | 2023.04.25 |
---|---|
50일차: 엔티티간 연관관계 매핑 (0) | 2023.04.24 |
48일차: Pagination(페이지네이션) API (0) | 2023.04.20 |
47일차: Spring MVC(데이터 액세스 계층) (0) | 2023.04.19 |
46일차: Spring MVC(JDBC, Spring Data JDBC) (0) | 2023.04.18 |