❗No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call
❓JPA의 모든 데이터 변경은 트랜잭션 내에서 일어나야 한다는 것을 명심하자.
@SpringBootTest
@Transactional // 트랜잭션 어노테이션
class MemberJpaRepositoryTest {
private final MemberJpaRepository memberJpaRepository;
@Autowired
MemberJpaRepositoryTest(MemberJpaRepository memberJpaRepository) {
this.memberJpaRepository = memberJpaRepository;
}
@Test
@DisplayName("간단한 테스트 코드")
void testMember() {
Member member = new Member("memberA");
Member savedMember = memberJpaRepository.save(member);
Member findMember = memberJpaRepository.find(savedMember.getId());
Assertions.assertThat(findMember.getId()).isEqualTo(member.getId());
Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername());
}
}