인프런 커뮤니티 질문&답변

이화평님의 프로필 이미지
이화평

작성한 질문수

실전! 스프링 데이터 JPA

Projections

Spring Data Jpa를 사용한 테스트 문의

작성

·

280

0

안녕하세요.
JpaRepository를 사용해서 테스트를 할 때 방법이 맞는지 궁금해서 문의드립니다.


1. saveMember = memberRepository.save(member)
2. findMember = memberRepository.findById(saveMember.getId())

이렇게 테스트코드를 짜면, 실제로 DB에서 find하는 것이 아니라 영속컨텍스트에서 해당 엔티티를 찾아서 반환하는 것으로
알고 있습니다.

만약에 insert 쿼리가 나가는 것과 실제 DB에서 find하기 위해서 아래와 같이 테스트 코드를 짰는데요.

1. saveMember = memberRepository.save(member)
추가) memberRepository.flush()
추가) em.clear()
2. findMember = memberRepository.findById(saveMember.getId())

memberRepository의 flush() 메소드를 통해 DB에 반영하고, 엔티티매니저의 clear()를 통해 영속 컨텍스트를 비웠습니다.

질문)여기서 의문점은 JpaRepository에는 clear() 메소드가 없어서 영속 컨텍스트를 비우기 위해선 엔티티매니저를 테스트 클래스에서 주입받아야 했습니다.
JpaRepository를 사용해서 영속 컨텍스트를 비울 수 있는 방법은 없나요???

 

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 이화평님

JpaRepository에는 clear()가 없습니다.

감사합니다.

이화평님의 프로필 이미지
이화평

작성한 질문수

질문하기