论坛首页 Java版 Hibernate

Hibernate多对多删除问题的解决

浏览 4644 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-04-29
多对多只能级联到中间表,不可能级联到双方实体的。
   
0 请登录后投票
最后更新时间:2008-06-27
我在更新主控方数据时,中间表的记录被删除了,是怎么回事?
   
0 请登录后投票
最后更新时间:2008-07-08
做过一个多对多的用户授权,主要有用户,角色,权限,资源,四个实体
用户与角色之间为多对多关系
角色与权限之间为多对多关系
权限与资源之间为多对多关系

在授权的过程中,涉及到了很多多对多的级联操作问题,比如删除用户,比如删除角色,解除用户角色,解除角色权限,解除权限资源,再比如删除资源,比如删除权限等等,处理起来的确比较麻烦,经过努力,最终解决了,并且与acegi进行了很好的结合.这些成果,被最终应用了在Faceye开源portal里面
关于Faceye开源portal的更多信息,可以参考
http://ecsun.javaeye.com

http://faceye.googlecode.com/
   
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 请登录后投票
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐