RuntimeException, Error 와 같은 Unchecked Exception 이 발생 하는 경우에만 롤백 처리 된다.
Unchecked Exception : 예측 할 수 없는 타이밍에 발생하는 예외를 말한다. 예를 들어 NullPointerException, IndexOutBoundsExcepton 같은 것들을 말하며, 모두 RuntimeExcetpion 클래스를 상속하고 있다.
Checked Exception : 컴파일러에서 감지가 가능한 예외라서 빨간줄이 보이면 조치를 취해주자.
만약 이 경우에도 롤백 처리를 하고 싶다면
@Transactional(rollbackFor = {SQLException.class}) 이런식으로 사용하면 된다.