빡코

[JPA] 스프링데이터 JPA - 트랜잭션 본문

Java/JPA

[JPA] 스프링데이터 JPA - 트랜잭션

chris.djang 2023. 12. 27. 18:27

Transaction? 쪼갤 수 없는 단위로 한번에 성공 또는 실패하는 것을 의미 한다. 

시작: start transaction

완료: commit

실패처리: rollback 

 

영속성 컨텍스트? 테이블과 매핑된 Entity 객체를 관리/보관하는 역할 

 

1. 변경감지(Dirty Check):  영속성 컨텍스트 안에서 불러와진 Entity는 명시적으로 save 를 해주지 않더라도 알아서 변경을 감지하여 저장

2. 쓰기지연: 트랜잭션이 commit 되는 시점에 SQL을 한번에 모아서 DB에 반영한다. 

3. 1차 캐싱: entity의 Id를 기준으로 기억하는 기능, 같은 Id로 조회시 총 1번의 select 쿼리만 날라간다.