[JPA] Service의 Transaction
- 컨트롤러에서 받아온 값을 갖고 비지니스 로직을 흘리는 곳.
- 만약 데이터 수정이 필요할 경우 아래 두가지 케이스로 진행한다.
- Repository -> 영속성 컨트롤러 캐시에 있다면 객체 가져와서 처리 (DB접근X)
- Repository -> 영속성 컨트롤러에 존재하지 않으면 DB 참조해서 처리
- Response가 Service로 갔다가 비지니스 처리 이상없이 완료되면 Controller로 가며 이때 Transaction이 종료되면서 Flush 되어 commit
- Service에서 에러 혹은 처리가 되지 않을 경우에 한꺼번에 Rollback처리 된다.