본문 바로가기

데이터베이스/그 외

jpa의 영속성 컨텍스트와 update

1. save함수로 update할때

jpa의 영속성 컨텍스트 안 1차 캐시에 있는 user객체가 있다.

여기서 이 user를 db에 업로드 함  

그럼 그 객체는  => 영속화 된 객체

그리고 그 캐시에서 db로 값을 넣는 행위를 => flush(우리가 버퍼 비울때 쓴 그거)

 

이게 save함수로 값을 바꾸어서 update할때 일어나는 과정

 

2. @Transactional 로 update 

@Transactional이 종료되는 시점 = 그 함수가 종료되는 시점

종료시 commit이 되는거, 값이 변경된걸 감지해서 update한 결과를 수정해줌(=더티체킹)

영속성 컨텍스트는 깃의 스테이징 같은거고 transactional 이 종료된 뒤 db에 값 날아가는게 commit같은 느낌