论坛首页 Java企业应用论坛

Hibernate多对多删除问题的解决

浏览 29830 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (5) :: 隐藏帖 (1)
作者 正文
   发表时间:2008-04-29  
多对多只能级联到中间表,不可能级联到双方实体的。
0 请登录后投票
   发表时间:2008-06-27  
我在更新主控方数据时,中间表的记录被删除了,是怎么回事?
0 请登录后投票
   发表时间:2008-07-10  
多对多最好拆分为两个一对多,那样更容易操控。因为实际应用中中间表还需要保存额外信息。
0 请登录后投票
   发表时间:2008-08-03  
many-to-many:
delete 细化到:1,删除关系,也就是删除中间表的记录.(中间表只是表达多对多的关系,和一对多的主外键关系是一致)
             2.删除关联方的记录,在多对多中这通常是不应该的.
多对多的删除操作一般指的是删除多对多的关联关系,cascade="save-update"是合适的.

双向关联关系要保证关系的双向绑定和双向解除,为了对象关系与数据库关系同步.

一对多也相同,删除关系变为从表外键=null,只是一对多删除操作通常会删除从表记录.
none:
save-update 级联保存.
delete      级联删除.
all       包含以上两种.
delete-orphan  当从集合移除一个对象时,由解除关系变为删除记录的操作.
all-delete-orphan  包含以上所有操作.


对于多对多双向关联的删除操作我所遇到的一个问题是:
  ConcurrentModificationException异常的避免.利用迭代器,解除双向关系的时候就会抛出.
  能够解决,但总是感觉解决方法很差.




0 请登录后投票
   发表时间:2008-08-05  
好,不过我遇到个问题,需要互删
0 请登录后投票
   发表时间:2008-10-13  
如果在双方都是主控端,结果会是如何呢?
0 请登录后投票
   发表时间:2008-12-05  
引用
但如果是Spring+Hiberante下多对多删除,可能会报一个错误,目前的解决办法是把两端的cascade都设置成none.


请问报的是什么错误?
0 请登录后投票
   发表时间:2008-12-12  
既然关系已经由课程来管理了,那你写的下边这两句就不起作用了吧?

t1.getCourses().add(c1);  
t2.getCourses().add(c1);    
[/ode]
不知你注意到了没?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics