반응형
💥 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)를 하지 않은 상태에서 해당 변수를 사용하려고 했기 때문에 문제가 발생하였다.
반응형
댓글