-
스프링부트 with JPA 블로그 11강 - DB격리수준스프링부트 with JPA 블로그 2020. 6. 7. 15:22
1. 오라클
read commit
2. MySQL
repeatable read
둘은 select시에 트랜잭션을 걸게 되면 차이가 들어난다. 무슨 차이가 있는지 살펴보자.
PHANTOM READ (데이터가 보였다 안보였다)
-> 정합성이 깨짐
3. 스프링부트의 트랜잭션
- 세션의 시작은 서블릿이 시작되는 시점 부터~ (세션은 영속성 컨텍스트를 포함)
- 트랜잭션의 시작은 서비스 레이어부터, JDBC 커넥션도 이 시점부터.
- 트랜잭션의 종료는 서비스 계층에서 종료, JDBC 커넥션도 이 시점 부터 종료.
- 세션은 컨트롤러 영역까지 끌고 가기 때문에 영속성이 보장되어 select가 가능해지고 lazy-loading이 가능해진다.
'스프링부트 with JPA 블로그' 카테고리의 다른 글
스프링부트 with JPA 블로그 13강 - 시큐리티 동작 원리 (2) 2020.06.10 스프링부트 with JPA 블로그 12강 - 시큐리티 코드 짜기 (0) 2020.06.09 스프링부트 with JPA 블로그 10강 - 화면구현 (3) 2020.05.20 스프링부트 with JPA 블로그 9강 - Json 데이터로 통신하기 (1) 2020.05.10 스프링부트 with JPA 블로그 8강 - 테이블 생성하기 (2) 2020.05.10 댓글