我使用Hibernate保存对象时遇到以下错误:
object references an unsaved transient instance - save the transient instance before flushing
我使用Hibernate保存对象时遇到以下错误:
object references an unsaved transient instance - save the transient instance before flushing
当我保存子对象时,我没有持久化父对象,导致了这个异常。为了解决这个问题,在同一个会话中,我持久化了子对象和父对象,并在父对象上使用了CascadeType.ALL。
Student s = studentRepo.findByName(generatedObject.getStudent().getName())
generatedObject.student(s);
我的问题与JUnit的@BeforeEach
有关。即使我保存了相关实体(在我的情况下是@ManyToOne
),我仍然得到相同的错误。
问题与我在父级中拥有的顺序有关。 如果我为该属性分配值,则问题得到解决。
例如, 如果我有一个可以有一些类别(一个或多个)的Question实体,并且Question实体具有一个序列:
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "feedbackSeq")
@Id
private Long id;
我需要给question.setId(1L);
赋值。