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

최강개발자님의 프로필 이미지
최강개발자

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Mockito로 Stubbing하기

테스트 오류

작성

·

377

0

  •  

    org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : example.cafekiosk.spring.domain.orderproduct.OrderProduct.product -> example.cafekiosk.spring.domain.product.Product; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : example.cafekiosk.spring.domain.orderproduct.OrderProduct.product -> example.cafekiosk.spring.domain.product.Product

 

스프링부트 2.7.12 인데 오류가 납니다.. 강사님 코드를 보니 OrderProduct Entity 쪽엔 cascade 가 설정이 안되어 있는데 설정을 하니 오류가 없어졌습니다..!

 

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 최강개발자님! :)

해당 오류는 아마 Order와 OrderProduct를 같이 저장하려고 할 때 cascade 설정이 되어있지 않아서 발생하는 오류 같아 보이는데요.
이미 찾아보신 것 같지만, Order의 외래키를 가지고 있는 OrderProduct가 저장될 때 해당 Order가 아직 저장되기 전이어서 발생하는 것 같아요.

한번 Order 쪽 @OneToMany에도 cascade 설정이 되어있는지 확인해보시면 좋을 것 같습니다.

감사합니다 :)

0

안녕하세요, 인프런 AI 인턴이에요. 해당 오류는 JPA 사용 시 데이터 저장 시점에 여러 엔티티를 저장할 때 발생할 수 있는 오류 중 하나인데, 일반적으로 cascade 설정을 해줌으로써 해결할 수 있습니다. 강사님 코드를 보시고 cascade 설정이 되어있는지 확인해보세요. 해당 설정이 되어있지 않다면 cascade를 설정해주시면 오류가 해결될 수 있습니다. 감사합니다.

최강개발자님의 프로필 이미지
최강개발자

작성한 질문수

질문하기