InvalidDataAccessApiUsageException, TransactionRequiredException

pickylemon·2024년 4월 17일
0

Exception 모음

목록 보기
1/31

상황

@SpringBootTest
class MemberRepositoryTest {
    @Autowired
    MemberRepository memberRepository;

    @Test
    @DisplayName("save테스트")
    void testMember(){

        //given
        Member member = new Member();
        member.setUsername("memberA");
        //when
        Long savedId = memberRepository.save(member);
        //then
        Member findMember = memberRepository.find(savedId);
        Assertions.assertThat(findMember).isEqualTo(member);

    }
}

에러메시지

org.springframework.dao.InvalidDataAccessApiUsageException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call
Caused by: jakarta.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call

해결

  • 말 그대로 available한 transaction이 없다는 뜻
  • JPA를 사용할 때 EntityManager를 통한 모든 변경은 Tx 단위로 동작한다.
  • 메서드에 @Transactional을 붙여주었다.
profile
안녕하세요

0개의 댓글