ARCHIVES

태그

신고하기

상단 메뉴 페이지

기본 콘텐츠로 건너뛰기

스프링부트 with JPA 블로그 11강 - DB격리수준

원문 : https://getinthere.tistory.com/27 (새창)
영상 : 너튜브 (새창)
겟인데어 님의 윈도우 강좌를 맥으로 해보면서 시행착오를 적습니다.


1. 오라클

read commit

 

2. MySQL

repeatable read

 

둘은 select시에 트랜잭션을 걸게 되면 차이가 들어난다. 무슨 차이가 있는지 살펴보자.

 

PHANTOM READ (데이터가 보였다 안보였다)

-> 정합성이 깨짐

 

3. 스프링부트의 트랜잭션

- 세션의 시작은 서블릿이 시작되는 시점 부터~ (세션은 영속성 컨텍스트를 포함)

- 트랜잭션의 시작은 서비스 레이어부터, JDBC 커넥션도 이 시점부터.

- 트랜잭션의 종료는 서비스 계층에서 종료, JDBC 커넥션도 이 시점 부터 종료.

- 세션은 컨트롤러 영역까지 끌고 가기 때문에 영속성이 보장되어 select가 가능해지고 lazy-loading이 가능해진다.

댓글