锁定老帖子 主题:Hibernate多对多删除问题的解决
精华帖 (0) :: 良好帖 (1) :: 新手帖 (5) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-29
多对多只能级联到中间表,不可能级联到双方实体的。
|
|
返回顶楼 | |
发表时间:2008-06-27
我在更新主控方数据时,中间表的记录被删除了,是怎么回事?
|
|
返回顶楼 | |
发表时间:2008-07-10
多对多最好拆分为两个一对多,那样更容易操控。因为实际应用中中间表还需要保存额外信息。
|
|
返回顶楼 | |
发表时间:2008-08-03
many-to-many:
delete 细化到:1,删除关系,也就是删除中间表的记录.(中间表只是表达多对多的关系,和一对多的主外键关系是一致) 2.删除关联方的记录,在多对多中这通常是不应该的. 多对多的删除操作一般指的是删除多对多的关联关系,cascade="save-update"是合适的. 双向关联关系要保证关系的双向绑定和双向解除,为了对象关系与数据库关系同步. 一对多也相同,删除关系变为从表外键=null,只是一对多删除操作通常会删除从表记录. none: save-update 级联保存. delete 级联删除. all 包含以上两种. delete-orphan 当从集合移除一个对象时,由解除关系变为删除记录的操作. all-delete-orphan 包含以上所有操作. 对于多对多双向关联的删除操作我所遇到的一个问题是: ConcurrentModificationException异常的避免.利用迭代器,解除双向关系的时候就会抛出. 能够解决,但总是感觉解决方法很差. |
|
返回顶楼 | |
发表时间:2008-08-05
好,不过我遇到个问题,需要互删
|
|
返回顶楼 | |
发表时间:2008-10-13
如果在双方都是主控端,结果会是如何呢?
|
|
返回顶楼 | |
发表时间:2008-12-05
引用 但如果是Spring+Hiberante下多对多删除,可能会报一个错误,目前的解决办法是把两端的cascade都设置成none. 请问报的是什么错误? |
|
返回顶楼 | |
发表时间:2008-12-12
既然关系已经由课程来管理了,那你写的下边这两句就不起作用了吧?
t1.getCourses().add(c1); t2.getCourses().add(c1); [/ode] 不知你注意到了没? |
|
返回顶楼 | |