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

최성규님의 프로필 이미지
최성규

작성한 질문수

실전! 스프링 데이터 JPA

Auditing

예제 실행시 이해 안되는 오류 상황 - TransactionRequiredException

해결된 질문

작성

·

651

0

안녕하세요. 영한님.

이상한 오류 상황이 있어서 도움을 요청드립니다. 코드는 강의대로 잘 입력했{다고 확신합|습}니다.

예제 코드 JpaEventBaseEntity() 메소드를 study.datajpa.entity.MemberTest class에 두면 TransactionRequiredException 예외가 발생합니다.

em.flush() 위치에서, javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'flush' call 라고 합니다.

반면에 똑 같은 test method를 study.datajpa.repository.MemberRepositoryTest 클래스 안에 두면 문제 없이 실행됩니다.

어떤 차이인지를 밝혀 주시면 감사하겠사옵니다. 아래 소스는 상기 2 개 위치 모두에 JpaEventBaseEntity() 메소드를 넣어둔 상태입니다.

프로젝트 소스 : https://github.com/skc1104/data-jpa-qna

감사합니다.

답변 2

4

안녕하세요.

제 생각에는 MemberTest 클래스에서 @Transactional을 걸지 않아서 그런거 같습니다.

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

PBFT님 감사합니다^^

3

최성규님의 프로필 이미지
최성규
질문자

안녕하세요.

해당 메소드에 @Transactional 붙여서 정상 실행되는 것을 확인했습니다.

PBFT님께서 가르쳐 주신 대로 말입니다.

PBFT님께 감사 말씀 드립니다. ^^

등잔 밑이 어두운 버그는 사실은 제 눈이 어두운 버그인가 봅니다.ㅎ

영한 선생님. 수고하지 않으셔도 되겠습니다.

감사합니다.

최성규님의 프로필 이미지
최성규

작성한 질문수

질문하기