今天写代码,需要更新数据。我先在controller里面根据id查询出数据,然后修改其中某些字段的值,传到service中做更新,结果hibernate报错:detached entity passed to persist。
然后尝试在service里面先做查询,然后修改更新,程序正常。
咨询了下架构师,说是entity从service传到controller中,由受控态变成了游离态,所以hibernate认为这是一个新数据,因为主键id存在值了,跟数据库存在主键冲突所以报错。
找到一篇说JPA实体生命周期的文章:http://blog.youkuaiyun.com/yingxiake/article/details/50968059
本文记录了一次使用Hibernate更新数据时遇到的问题及解决过程。作者在更新数据时遇到了detachedentitypassedtopersist错误,并通过调整代码逻辑成功解决了问题。文章还探讨了实体在不同层间传递时的状态变化。
606

被折叠的 条评论
为什么被折叠?



