이번에는 트렌젝션에 대해 알아보겠다.
트렌젝션(Transaction)
간단하게 말하면 service단에서 작업 - 작업 결과 DB에 반영 하는 등의 작업 단위를 말한다.
영속성 컨텍스트와의 관계
트렌젝션 작업 단위와 영속성 컨텍스트의 생명 주기가 같다.
즉 @Transaction이 메서드가 호출됨과 동시에 영속성 컨텍스트가 생성되고 그 안에서의 객체들이 영속선 컨텍스트에서 관리된다.
특징 및 종료시점
- 작업 도중에 에러가 발생하면 진행 작업을 모두 롤백한다.
- 모든 작업이 완료되고 DB에도 잘 반영이 된 후 commit을 발생시켜 종료한다.