ROLLBACK

JVM/Spring

[SPRING] @Transactional (트랜잭션) 강제 롤백

😎본론 로직을 구현하다가 아래와 같은 상황을 마주한 적이 있었다. 트랜잭션 내에서 쿼리작업을 진행하다가 validation을 통해 걸렸을 때 에러는 발생하지 않고, 지금까지 변경된 쿼리를 롤백을 시켜야 할 떄 @Transactional 은 Exception 이 발동할 때만 롤백을 시킨다. 🤔그러면 어떻게 롤백을 시켜야할까? TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 트랜잭션이 롤백하는 방법을 강제적으로 넣어주는 것이다. setRollbackOnly 을 통해 트랜잭션이 종료되었을 때 무조건 롤백을 시키도록 설정하는 것이다. 물론 해당 로직은 리팩토링 작업을 통해 validation과 쿼리작업을 분리하였다. 당장 테스트를 해..

JVM/Spring

[SPRING]@Transactional Annotation 알고 쓰자

- 첫 작성일 : 21년 3월 21일 velog 블로그 1. 서론 초반 @Transactional 어노테이션에 대해 자세히 알아보지 않고, 막연히 롤백때 사용한다고 하여 SQL C,U,D 를 할 때마다 메소드 위에 붙여서 사용하곤 하였다. 하지만, 내 코드를 보신 선임께서 단지 @Transactional 만 붙이면 롤백이 안되고, @Transactional(rollbackFor = Exception.class) 을 붙여야 된다고 알려주셨다. 여기에서 뭐 때문인지에 대해 호기심에 트랜잭션에 대해 찾아보다가 내가 생각했던 것 보다 더 많은 기능들이 존재한다는 것을 알고 정리해보려 한다. 2. 트랜잭션이 뭐지? 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들을 의미한다. begin, c..

Hyo Kim
'ROLLBACK' 태그의 글 목록