Junit을 사용하여 jpa 데이터 검증을 시도할 때 @Transactional을 사용하곤 합니다.
@Test
@Transactional
public void test(){}
다만, 위와 같이 @Transactional을 선언할 경우 테스트를 실행할 때 마다 트랜잭션을 시작하고, 테스트가 완료되면 트랜잭션을 강제 롤백합니다.
이유는 아무래도 테스트 코드 내에서 코드 검증인 만큼 실제 DB의 값이 테스트 환경으로 인해 변경되지 않도록 하기 위해서 강제 롤백을 시키는 것으로 생각됩니다.
@Test
@Transactional
@Rollback(false)
public void test(){}
만약 롤백을 원하시지 않는다면 @Rollback(false) 해당 어노테이션을 추가적으로 작성해주시면 junit 환경에서도 강제 롤백되지 않도록 설정 가능합니다.