[실전! 스프링 데이터 JPA] 01. 스프링 데이터 JPA 소개 & 02. 예제 도메인 모델 개발

Turtle·2024년 7월 17일
0
post-thumbnail

🙄스프링 데이터 JPA와 DB 설정, 동작 확인

❗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());
	}
}

0개의 댓글