SPRING/SPRING-ERROR
Spring Error - jakarta.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call
hanker
2024. 10. 9. 13:52
반응형
해당 오류 원인은 JPA 사용 시 트랜잭션 없이 엔티티를 영속화하려고 할 경우에 발생한다.
해결방법은 간단한데, EntityManager를 사용하는 클래스 상단에
@Transactional 어노테이션을 추가하던, persist를 사용하는 메서드에 @Transactional 어노테이션을 추가하면 된다.
@Transactional
public class JpaMemberRepository implements MemberRepository {
private final EntityManager em;
public JpaMemberRepository(EntityManager em) {
this.em = em;
}
@Override
// @Transactional
public HnMember save(HnMember member) {
em.persist(member);
return member;
}
}
하단 메서드에 추가해도 되고, 클래스 상단에 추가해도 된다.
끝.
반응형