에러가 발생한 이유
EntityManager 는 트랜잭션 안에서만 동작한다.
EntityManager 가 메서드 내에서 동작할 때 현재 트랜잭션이 없기 때문에 발생한다.
해결하려면 트랜잭션 내에서 실행되도록 보장해야 한다.
해결법
실행하려는 메서드(또는 클래스)에 @Transactional
애너테이션을 붙인다.
코드 예시
@Transactional // 트랜잭션 내에서 동작하도록 보장
@Test
void example() {
// ...
}
읽어주셔서 감사합니다.
'JPA' 카테고리의 다른 글
[JPA] cascade = CascadeType.REMOVE, orphanRemoval = true 두 옵션을 명시적으로 사용하는 이유 (0) | 2024.01.28 |
---|