영속성이란 말이 처음엔 잘 와닿지 않죠
쉽게 말해서 지속성을 의미합니다.
어학사전에선
정도로 찾아볼 수 있습니다.
영속성은 데이터를 생성한 후 수정하거나 삭제하기 전까지 데이터를 유지하는 것을 말합니다.
즉 영속성을 가진다, 영속성을 지킨다는 말은 객체가 데이터베이스에 저장되어 지속적으로 유지한다는 것을 의미하게 되죠
데이터의 지속성을 보장
애플리케이션의 상태가 변해도, 프로그램이 종료되어도 데이터는 손실되지 않습니다.
캐싱 및 성능 향상
영속성 컨텍스트는 데이터베이스로부터 조회한 데이터를 캐싱하여 재사용합니다. 이를 통해 데이터 베이스 접근 비용을 줄이고 애플리케이션 성능을 향상시킵니다.
JPA 기본 구조
persist 할 때 sql이 실행되는 게 아니라 commit 할 때 실행됩니다.
DB에서 읽어온 객체, 응용프로그램에서 저장한 객체 등을 저장하고 있는 메모리 공간
객체들을 보관하고 있다가 commit 하는 시점에 변경이 발생했는지 확인하고 변경이 됐으면 commit시점에 저장
persist를 하면 영속 컨텍스트에 저장해놨다가 commit할 때 DB에 저장
영속 컨텍스트는 트랜잭션 범위 안에서만 유지
EntityManager가 제공하는 메서드 이용
엔티티 타입, ID타입이 맞도록
find()로 읽어온 뒤 수정 삭제