본문 바로가기
Web/JPA

[JPA] 트랜잭션

by foreverever 2019. 5. 29.
반응형

1. 트랜잭션

  • 데이터를 접근, 변경하는 일련의 작업을 하나로 묶는 작업단위
  • 작업의 완전성 보장
  • 작업의 성공/실패가 분명

2. ACID (트랜잭션 성질)

  1. 원자성(Atomicity)

    • 하나의 트랜잭션 내의 실행한 작업들은 하나로 간주
    • 성공 아니면 실패 (모 아니면 도)
  2. 일관성(Consistency)

    • 언제나 일관성 있는 데이터베이스 상태 유지
  3. 고립성,독립성(Isolation)

    • 실행중인 각각의 트랜잭션은 서로가 간섭없이 독립적으로 진행
    • 서로 영향 X
  4. 지속성(Durability)

    • 트랜잭션이 성공적으로 수행되면 결과는 영원히 저장(반영)

3. Commit, Rollback 연산

  1. Commit

    • 하나의 트랜잭션이 성공적으로 종료 (DB 반영)
    • 변경사항 저장
  2. Rollback

    • 하나의 트랜잭션이 비정상적으로 종료시 수행
    • 변경사항 취소
    • 트랜잭션 예외 처리

4. @Transactional

  • Spring에서 제공하는 트랜잭션 처리 기능
  • 클래스, 메서드위에 @Transactionl 추가
  • RuntimeException 발생 시, Rollback 처리
반응형

'Web > JPA' 카테고리의 다른 글

[JPA] 지연 로딩/즉시 로딩  (0) 2019.06.20
[JPA] 영속성 컨텍스트 (Persistence context)  (0) 2019.05.28