[인프런 워밍업 클럽 스터디] 8일차 - 트랜잭션과 영속성 컨텍스트

image

[트랜잭션이란?]

쪼갤 수 없는 업무의 최소 단위

--> 한 번에 성공하거나, 한 번에 실패하거나!

 

[주의사항]

IOException과 같은 Checked Exception은 롤백이 일어나지 않는다.

 

[영속성 컨텍스트란?]

테이블과 매핑된 Entity 객체를 관리/보관하는 역할

--> 스프링에서는 트랜잭션을 사용하면 영속성 컨텍스트가 생겨나고, 트랜잭션이 종료된면 영속성 컨텍스트가 종료된다.

 

[영속성 컨텍스트의 특수능력 4가지]

  1. 변경 감지 Dirty Check : 영속성 컨텍스트 안에서 불러와진 Entity는 명시적으로 save하지 않더라도, 변경을 감지해 자동으로 저장된다.

  2. 쓰기 지연: DB의 INSERT/UPDATE/DELETE SQL을 바로 날리는 것이 아니라, 트랜잭션이 commit될 때 모아서 한번만 날린다.

  3. 1차 캐싱: ID를 기준으로 Entity를 기억한다. 이렇게 캐싱된 객체는 완전히 동일하다.

  4. 지연 로딩(Lazy Loading) : 지연 로딩을 사용하게 되면, 연결되어 있는 객체를 꼭 필요한 순간에만 가져온다.

 

 

 

 

 

 

 

댓글을 작성해보세요.