关于springboot:oneToMany中save-the-transient-instance-before-flushing问题的解决

save the transient instance before flushing,翻译过去就是 在刷新之前保留长期实例。

这个问题通常呈现在父子实体的存储程序上,比方物业对小区是一对多的关系那么咱们在保留数据时就应该先保留物业再更新小区,如果先更新小区的话那么他对应的物业还是属于一个长期数据也就是说物业还没有本人对应的ID,那么小区天然也就更新不了。
然而这个问题通常不仅仅呈现在保留程序上,咱们来看看上面这个实例:

当我想要更新小区时就会产生上述报错,报错行为第132行,这里并没有进行存储操作,并且实践上是曾经存储完了物业,再查问对应小区也不会有什么问题。

排查之后发现第132行是依据propertyCompany来查找的,而咱们保留的是newPropertyCompany,也就是说propertyCompany是没有ID的,newPropertyCompany存在ID。

所以这个问题呈现的根本原因是操作了没有ID的实体,当咱们遇到此类报错时只须要再控制台中输入一下操作实体的ID,很容易就能够排查进去。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理