@Transactional을 사용하면 기본적으로 테스트 메서드가 완료된 후 롤백된다. 따라서 롤백을 하지 않고 트랜잭션을 커밋하려면 특별한 설정이 필요하다.
Spring의 @Transactional 어노테이션을 사용하여 롤백을 하지 않도록 설정하려면 트랜잭션 관리자에 대한 설정이 필요하다. 기본적으로 Spring은 테스트 메서드가 완료된 후 롤백을 수행하여 데이터베이스를 변경하지 않는다. 그러나 롤백을 하지 않고 싶다면 다음과 같이 설정할 수 있다.
: @Transactional 어노테이션과 함께 @Commit 어노테이션을 사용하여 롤백을 하지 않도록 설정할 수 있다.
@Test
@Transactional
@Commit
void insertAndFind () {
// ...
}
: 롤백을 하지 않도록 설정하려면 @Transactional 어노테이션 대신 @Rollback(false) 어노테이션을 사용할 수도 있다.
@Test
@Transactional
@Rollback(false)
void insertAndFind () {
// ...
}
어떤 방법을 선택하든, 이러한 설정을 사용하면 @Transactional 어노테이션을 사용하더라도 롤백을 하지 않고 데이터베이스에 변경 사항을 반영할 수 있다.