DB (10) 썸네일형 리스트형 Requires_new 우리는 흔히 Requirs_new의 옵션을 생각하면 각각의 트랜잭션이 독립적으로 실행되는것으로 알고 있다. 하지만 다음과 같은 코드가 있에서는 서비스 B에서 예외를 보냈지만 서비스 B 와 A 모두 롤백이 된다. @RequiredArgsConstructor @Service public class TestServiceA { private final TestServiceB testServiceB; private final PostsRepository postsRepository; @Transactional public void save(PostsSaveRequestDto requestDto) { System.out.println("상위 트랜잭션 시작"); postsRepository.save(requestDt.. 트랜잭션 트랜잭션이란 여러 쿼리를 하나의 작업으로 묶어두는것을 트랜잭션이라고 한다. 돈거래로 예를 들어보겠다. 판매자 A와 구매자 B가 있다고 했을때 다음과 같은 작업이 일어난다. -구매자 계좌에서 5000원 출금 -판매자 계좌에 5000원 입금 각각 쿼리로 나타낸다면 다음과 같다. -UPDATE 구매자 계좌 5000원 빼기 -UPDATE 판매자 계좌 5000원 더하기 하지만 이 과정에서 하나의 쿼리만 실행된 후 서버가 다운되거나 오류가 발생한다면 큰 문제가 발생할 것이다. 이러한 상황의 발생을 막기 위해 나타난 것이 바로 트랜잭션이다. 위의 쿼리들을 하나의 작업으로 묶어 모두 실행되거나(커밋) 실행되지 않게 해주는 것이다(롤백). 이로 인해 시스템 상의 오류가 있거나 사용자가 오류를 범하더라도 데이터베이스의 데.. 이전 1 2 다음