트랜잭션 범위의 영속성 컨텍스트 스프링 컨테이너는 트랜잭션 범위의 영속성 컨텍스트 전략을 기본으로 사용한다. 트랜잭션의 범위와 영속성 컨텍스트의 생존 범위가 같다는 뜻이다. 트랜잭션을 시작할 때 영속성 컨텍스트를 생성하고 트랜잭션이 끝날 때 영속성 컨텍스트를 종료한다.
JPA의 표준 예외트랜잭션 롤백을 표시하는 예외트랙잭션 롤백을 표시하지 않는 예외JPA의 예외를 spring이 변환해서 날리는 것이다.트랜잭션 롤백을 표시하는 예외는 심각한 예외이므로 복구해서는 안된다. 이 예외가 발생하면 트랜잭션을 강제로 커밋해도 트랜잭션이 커밋되지
트랜잭션은 ACID(원자성 Actomicity, 일관성 Consistency, 격리성 Isolation, 지속성 Durability)을 보장해야한다.원자성 : 전부 성공하거나, 전부 실패하거나일관성 : 모든 트랜잭션은 일관성있는 데이터베이스 상태를 유지해야한다. 예를
JPA의 영속성 컨텍스트를 적절히 활용하면 데이터베이스 트랜잭션이 READ COMMITED 격리 수준이어도 애플리케이션 레벨에서 반복 가능한 읽기가 가능하다. 물론 엔티티가 아닌 스칼라 값을 직접 조회하면 영속성 컨텍스트의 관리를 받지 못하므로 반복가능한 읽기를 할 수