[JPA] JPA 이해하기_영속성

김동욱·2023년 8월 25일
0

JPA

목록 보기
2/3

영속성(persistence)

영속성이란 말이 처음엔 잘 와닿지 않죠
쉽게 말해서 지속성을 의미합니다.

어학사전에선

정도로 찾아볼 수 있습니다.

영속성은 데이터를 생성한 후 수정하거나 삭제하기 전까지 데이터를 유지하는 것을 말합니다.
즉 영속성을 가진다, 영속성을 지킨다는 말은 객체가 데이터베이스에 저장되어 지속적으로 유지한다는 것을 의미하게 되죠

그러면 영속성이 중요한 이유는 무엇일까요?

  1. 데이터의 지속성을 보장
    애플리케이션의 상태가 변해도, 프로그램이 종료되어도 데이터는 손실되지 않습니다.

  2. 캐싱 및 성능 향상
    영속성 컨텍스트는 데이터베이스로부터 조회한 데이터를 캐싱하여 재사용합니다. 이를 통해 데이터 베이스 접근 비용을 줄이고 애플리케이션 성능을 향상시킵니다.

영속 컨텍스트

JPA 기본 구조

  • EntityManagerFactory 초기화
    DB작업할 때 마다
  • EntityManager 생성
  • EntityManager로 DB조작
  • EntityTransaction으로 트랜잭션 관리

persist 할 때 sql이 실행되는 게 아니라 commit 할 때 실행됩니다.
DB에서 읽어온 객체, 응용프로그램에서 저장한 객체 등을 저장하고 있는 메모리 공간
객체들을 보관하고 있다가 commit 하는 시점에 변경이 발생했는지 확인하고 변경이 됐으면 commit시점에 저장

persist를 하면 영속 컨텍스트에 저장해놨다가 commit할 때 DB에 저장

엔티티 단위 CRUD 처리

영속 컨텍스트는 트랜잭션 범위 안에서만 유지

EntityManager가 제공하는 메서드 이용

  • persist()
  • find()
  • remove()
  • merge()

find()

엔티티 타입, ID타입이 맞도록

수정, 삭제

find()로 읽어온 뒤 수정 삭제


최범균 JPA

profile
안녕하세요. 공부해요

0개의 댓글