• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

21.05.12 18:32 작성 조회수 484

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

PBFT님의 프로필

PBFT

2021.05.12

안녕하세요.

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

PBFT님 감사합니다^^

3

최성규님의 프로필

최성규

질문자

2021.05.12

안녕하세요.

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

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

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

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

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

감사합니다.