본문 바로가기
프로그래밍/세팅 및 오류

[error] javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call 오류

by 노잼인간이라불립니다 2022. 7. 27.

JPA querydsl 강의를 진행하면서 test코드를 작성해야 하는 부분이 있었다.

 

분명 강사님과 같은 코드를 짰는데 나는 제목과 같은 오류가 발생했다.

 

구글링을 통해 원인을 찾아보니 JPA 자체는 트랜잭션을 기반으로 작동하기 때문에 발생하는 오류였다.

 

트랜잭션이 유지되는 동안에는 영속성 콘텍스트라고 불리우는 1차 캐시에 엔티티정보가 저장되는데, 트랜잭션이 선언되지 않아 Persist가 진행이 안되는 것 이었던 것 같다.

 

아무튼 테스트 코드에 @Transactional을 추가해주었더니 바로 해결이 되었다.