서비스 메소드 내부에서 모든 DML관련 작업에 예외 없이 잘 동작하면 commit,
예외가 발생하면 rollback이 적용된다.

트랜잭션일 실행중이면 나의 트랜잭션은 어떻게 행동할것?

전파행위 옵션(propagation)
REQUIRED (default)
- 진행 중인 트랜잭션이 있으면 현재 메소드를 그 트랜잭션에서 실행하되 그렇지 않은 경우 새 트랜잭션을 시작해서 실행한다. → 앞에 트랜잭션이 하나라도 에러나면 내꺼 롤백
- → 앞에꺼 없으면 내꺼 실행
REQUIRED_NEW
- 항상 새 트랜잭션을 시작해 메소드를 실행하고 진행중인 트랜잭션이 있으면 잠시 중단시킨다.
- → 내꺼는 새로
SUPPORTS
- 진행중인 트랜잭션이 있으면 현재 메소드를 그 트랜잭션 내에서 실행하되, 그렇지 않을 경우 트랜잭션 없이 실행한다.
NOT_SUPPORTED
- 트랜잭션 없이 현재 메소드를 실행하고 진행중인 트랜잭션이 있으면 잠시 중단한다.
MANDATORY
- 반드시 트랜잭션을 걸고 현재 메소드를 실행하되 진행중인 트랜잭션이 있으면 예외를 던진다.