본문 바로가기
JAVA/Error

[ Spring ] TransientPropertyValueException 에러 해결 방법

by 알기 쉬운 코딩 사전 2024. 5. 20.
반응형

💥 application run 시 발생한 에러 메시지

Error creating bean with name 'initDb': Invocation of init method failed

Caused by: java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.OrderItem.item -> jpabook.jpashop.domain.item.Item

Caused by: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.OrderItem.item -> jpabook.jpashop.domain.item.Item

 

✅ 해결 방법

 

✔️ 해결 방법

  • 디버그 모드를 통하여 빠르게 해결했다.

1. dbInit1 메서드를 확인하였다.

 

2. init 메서드를 확인하였다.

book2(로컬 변수)를 입력할 수 없다는 내용이었다.

boo2를 저장하지 않아서 생긴 문제였다.

 

❓에러 발생 이유

보통 해당 에러는 영속성 전이를 하지 않은 상태에서 엔티티 변수를 사용하려고 할 때 발생한다. 따라서 영속성 전이 설정(casecade 옵션)을 잘했는지 확인해 주면 된다.
하지만 나의 경우에는  em.persist(book2)를 하지 않은 상태에서 해당 변수를 사용하려고 했기 때문에 문제가 발생하였다.
반응형

댓글