@Transactional 사용하면서 롤백 안시키기

Hyun·2023년 9월 3일
0

Spring

목록 보기
24/38
post-thumbnail

@Transactional을 사용하면 기본적으로 테스트 메서드가 완료된 후 롤백된다. 따라서 롤백을 하지 않고 트랜잭션을 커밋하려면 특별한 설정이 필요하다.

Spring의 @Transactional 어노테이션을 사용하여 롤백을 하지 않도록 설정하려면 트랜잭션 관리자에 대한 설정이 필요하다. 기본적으로 Spring은 테스트 메서드가 완료된 후 롤백을 수행하여 데이터베이스를 변경하지 않는다. 그러나 롤백을 하지 않고 싶다면 다음과 같이 설정할 수 있다.

1. @Commit 어노테이션 사용

: @Transactional 어노테이션과 함께 @Commit 어노테이션을 사용하여 롤백을 하지 않도록 설정할 수 있다.

@Test
@Transactional
@Commit
void insertAndFind () {
    // ...
}

2. @Rollback 어노테이션 사용

: 롤백을 하지 않도록 설정하려면 @Transactional 어노테이션 대신 @Rollback(false) 어노테이션을 사용할 수도 있다.

@Test
@Transactional
@Rollback(false)
void insertAndFind () {
    // ...
}

어떤 방법을 선택하든, 이러한 설정을 사용하면 @Transactional 어노테이션을 사용하더라도 롤백을 하지 않고 데이터베이스에 변경 사항을 반영할 수 있다.

profile
better than yesterday

0개의 댓글