🌱 오늘의 주제 : @Transactional 이란?
🌱 @Transactional 이란?
- 데이터베이스를 다룰 때 트랜잭션을 적용하면 데이터 추가, 갱신, 삭제 등으로 이루어진 작업을 처리하던 중 오류가 발생했을 때 모든 작업들을 원상태로 되돌릴 수 있다. 모든 작업들이 성공해야만 최종적으로 데이터베이스에 반영하도록 한다.
🌱 스프링에서 @Transactional 을 이용하여 트랜잭션 처리를 하는 방법
- DB와 관련된, 트랜잭션이 필요한 서비스 클래스 혹은 메서드에 @Transactional 어노테이션을 달아주면된다.
- 클래스, 메서드 모두에 @Transactional 어노테이션을 붙이면 메서드 레벨의 @Transactional 선언이 우선 적용된다.
- @Transactional이 붙은 메서드는 메서드가 포함하고 있는 작업 중에 하나라도 실패할 경우 전체 작업을 취소한다.
- 일련의 작업들을 묶어서 하나의 단위로 처리하고 싶다면 @Transactional을 활용
🌱 테스트 환경에서의 @Transactional 동작
- 테스트 메서드에 @Transactional을 사용하면 트랜잭션으로 감싸지며, 메서드가 종료될 때 자동으로 롤백된다.
'JPA' 카테고리의 다른 글
JPA - 엔티티 매핑 (0) | 2023.07.27 |
---|---|
JPA - 영속성 관리 (0) | 2023.07.18 |
JPA - JPA 소개 (0) | 2023.07.11 |
JPA - 메소드 종류 (1) | 2023.06.16 |
JPA - Optional 클래스 (0) | 2023.06.03 |