[인프런 워밍업 클럽 스터디] 8일차 - 트랜잭션과 영속성 컨텍스트
8개월 전
[트랜잭션이란?]
쪼갤 수 없는 업무의 최소 단위
--> 한 번에 성공하거나, 한 번에 실패하거나!
[주의사항]
IOException과 같은 Checked Exception은 롤백이 일어나지 않는다.
[영속성 컨텍스트란?]
테이블과 매핑된 Entity 객체를 관리/보관하는 역할
--> 스프링에서는 트랜잭션을 사용하면 영속성 컨텍스트가 생겨나고, 트랜잭션이 종료된면 영속성 컨텍스트가 종료된다.
[영속성 컨텍스트의 특수능력 4가지]
변경 감지 Dirty Check : 영속성 컨텍스트 안에서 불러와진 Entity는 명시적으로 save하지 않더라도, 변경을 감지해 자동으로 저장된다.
쓰기 지연: DB의 INSERT/UPDATE/DELETE SQL을 바로 날리는 것이 아니라, 트랜잭션이 commit될 때 모아서 한번만 날린다.
1차 캐싱: ID를 기준으로 Entity를 기억한다. 이렇게 캐싱된 객체는 완전히 동일하다.
지연 로딩(Lazy Loading) : 지연 로딩을 사용하게 되면, 연결되어 있는 객체를 꼭 필요한 순간에만 가져온다.
댓글을 작성해보세요.