取消hibernate的双向维护,以及引用cascade="delete"
2017-07-19 15:53
330 查看
在现在的多个表关联的应用中,表与表的同时维护少不了。下面是我在进行SSH应用中遇到的问题及一些解决方法。表:Client表(一)Contact表(多)在网页中,想通过维护或删除Client表中的对象时,同时将对应的Contact表中的关联对象进行维护或删除。下面将各个情况说一下。1、进行修改维护因为在Client表中进行修改它的名称时,也要将它反映到Contact表中。但是在两个 cfg.xml参数表中没有设置的好话,就会出现Client表的名称修改了,但是在Contact表中的外键却变成了null的情况。维护后要在Client.cfg.xml中,set标签中加入inverse="true",加入后表示在client更新时,不对外键进行维护。只由contact表来维护。这样就可以避免出现contact表出现外键变成null的情况了。2、级联删除。在代码里面,set集合中加入cascade="delete",表示在表Client中进行级联删除。这样只要在Client表中进行删除操作,与之关联的多个contact对象就会同时被删除。####注意的是,不要只加入inverse =“true”,这样的话只是对修改起作用,但是进行删除的时候,Contact表中的外键数据就会丢失而出错。
相关文章推荐
- HIbernate级联删除(hibernate 双向一对多中 主表设置cascade="all-delete-orphan",在save时出现
- 晕,hibernate 的 merge和cascade="all-delete-orphan"要慎重合在一起使用
- hibernate cascade="all-delete-orphan"(所有-删除-孤儿)释疑
- HibernateException - A collection with cascade="all-delete-orphan" was no longer referenced by the o
- Hibernate一对一双向关联映射以及相互引用toString()方法的错误原因
- Hibernate5-1对多(1:n)-级联删除-cascade="delete-orphanl"
- Hibernate中的双向多对一关联以及 inverse属性、cascade属性的用法
- org.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance:
- Hibernate逍遥游记-第5章映射一对多-02双向(<set>、<key>、<one-to-many>、inverse、cascade="all-delete-orphan")
- org.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance:
- 晕,hibernate 的 merge和cascade="all-delete-orphan"要慎重合在一起使用
- 在hibernate启动的时候报了个错: 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾
- 在hibernate启动的时候报了个错: 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾
- 【hibernate框架】一对多(多对一)双向CRUD-Cascade2
- 从hibernate源代码角度解析, 关系维护 ,dirty检查 ,脏数据检查.. 级联区别 cascade区别.
- hibernate 双向一对多 关联在多端维护
- [原创]java WEB学习笔记83:Hibernate学习之路---双向 1-n介绍,关键点解释,代码实现,set属性介绍(inverse,cascade ,order-by )
- "Syntax error on tokens, delete these tokens"的分析以及的解决之道
- Hibernate关联映射之一对多,多对一以及双向一对多
- 谈论Hibernate级联删除——JPA根据Hibernate实现许多级联删除CascadeType.DELETE_ORPHAN