JPA
JPA @Transactional과 @Rollback
keepgoing
2022. 1. 4. 18:30
스프링 @Transactional의 특징과 @Rollback 사용
스프링에서 제공하는 @Transactional은 기본적으로 커밋을 하지 않고 데이터를 롤백을 시킨다.
그렇게 되면 반복적인 테스트할 때 유용하다.
하지만 insert나 update 등의 쿼리문을 보기 위해선
데이터가 DB에 접근을 해야되는데 JPA 특성상 커밋을 하지 않으면 DB에 쿼리가 날라가지 않는다.
따라서, @Transactional을 사용하고 있을 때, DB 쿼리 문을 확인하고 싶으면 @Rollback(false)를
사용해주면 된다.
(단, yml에 org.hibernate.type: trace을 선언하면 insert 문이 보이지 않는다.)
@Rollback(value = false)