◇ PART · DB

@Transactional 기본

Spring 기초
SMHRD

학습 목표

1. 문제

"송금" 같은 작업 — 출금만 됐는데 입금이 실패하면? 돈이 사라진다.

2. 새 도구

@Transactional: 메서드 내 모든 DB 작업을 하나의 단위로 묶음. 하나라도 실패하면 모두 롤백.

3. 코드

@Service public class TransferService { @Transactional public void transfer(int from, int to, int amount) { accountMapper.withdraw(from, amount); // 출금 accountMapper.deposit(to, amount); // 입금 // 둘 중 하나라도 예외 발생 → 자동 롤백 // 둘 다 성공 → 커밋 } }

4. 정리

5. Before / After

전 차시

"송금" 같은 작업 — 출금만 됐는데 입금이 실패하면? 돈이 사라진다.

이번 차시

여러 DB 작업을 묶어야 할 때 어떤 어노테이션을 쓰는지 안다.

학습 확인 체크리스트