인프런 커뮤니티 질문&답변
test어노테이션이 붙어있고 transactional어노테이션이 붙어있는 경우에 매번 롤백하나요?
작성
·
232
1
서비스 클래스에 transactional 어노테이션 붙여져 있어도 test코드에서 또 transactional 어노테이션 붙이잖아요 그 이유가 테스트를 여러번 수행해야하고 그때마다 테스트 시 변경한 것들을 되돌려놔야하는데 저 어노테이션이 있으면 롤백해서 그런거라는 답변을 들었는데 test인 어노테이션이 붙어있는 경우에는 롤백을 하는건가요? 원래같으면 뭔가가 잘못된 경우에 롤백하잖아요 수행시마다 롤백하는게 아니라
퀴즈
JPA에서 SQL과 JPQL 쿼리의 주요 차이점은 무엇인가요?
성능 최적화 방식
데이터 타입 지원 범위
테이블 기반 vs 엔티티 객체 기반
파라미터 바인딩 방식
답변 1
0
안녕하세요. 김민지님, 공식 서포터즈 OMG입니다.
네, 테스트에서 @Transaciotnal이 붙어있는 경우 롤백을 진행하며, 다음과 같이 롤백 기능을 제어할 수 있습니다.
또한 말씀하신 내용 중 테스트코드에선 @Transactional을 선언했지만 실제 구현 코드에서 누락이 된 경우에 대해선 테스트는 성공하더라도 예외가 발생할 수 있습니다.
아래 잘 정리된 글을 보시면 많은 도움 되리라 생각합니다.





