您的位置:首页 > 其它

Hibernate 一对多级联更新(更新,删除多方数据)的错误解决

2014-07-10 19:50 381 查看
我在处理数据库的级联关系时,老是碰到题目中的两个异常:

deleted object would be re-saved by cascade

A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance。

这两个问题,删除cascade这一项会解决一个问题但是也带来了另一个问题,删除cascade以后呢,就相反,总有问题。

而修改明细后保存报:

a different object
with the same identifier value was already associated with the session

而解决方法是:

1.在One方设置为cascade="all-delete-orphan" ,

2.修改保存时(同时修改了MANY方),一般都需要将数据库中的数据先getById取出,然后进行赋值。

3.其Set中的Many方不能通过setXXX的方式设置值。因为这样在后面merge的时候就不会有更新语句。需要通过将getById取出的Set进行clear(),然后将前台传入的Many数据一一通过getXXX().add()的方法加入。

4.,对实体进行MERGE,Session.merge()。这样Many方有修改或删除都可以正常进行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐