关于hibernate级联的一点总结
来源:互联网 发布:ps4模拟windows 编辑:程序博客网 时间:2024/06/06 00:31
今天在遇到一个问题,当我想通过hibernate删除某个对象时总是报错
809128 [http-8080-3] ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
各方查找众说纷纭,有的说是这个类设置了自动增加的主键,也有说主键id用的int应该使用integer,因为两者的初始值不一样,还有说是某个值应该为空,结果在删除的时候改制被删除了不是空值;不是持久化对象等。最后各种尝试,其实是一对多,我先删了多方,再来删一方导致的,正确的做法直接删除一方就可同时删除一方和多方两者的对象。
如下所示:
- public class Depart {
- private int id;
- private String name;
- private Set<Employee> employees; //一端执有多端的一个集合引用
- }
- public class Employee{
- private int id;
- private String name;
- private String add;
- private Depart depart;
- }
Depart配置中
- <set name="employees" inverse="true" cascade="all-delete-orphan" >
- <key column="dept_id"/>
- <one-to-many class="com.liuc.domain.Employee" />
- </set>
- <many-to-one name="dept" column="dept_id" not-null="true" foreign-key="fk_emp_dept"/>
- </class>
在删除一个部门是就能将整个部门的人都删去。。
当然这里涉及到
即删除一的一方会将相应的多的一方也全部删掉,不需在单独删除多的一方的对象,当然这里需要设置级联关系为cascade="delete-orphan 或 all" 。
0 0
- 关于hibernate级联的一点总结
- 关于hibernate的级联删除
- hibernate的一点总结
- hibernate的一点总结
- hibernate中关于级联删除的问题
- 关于hibernate级联修改的一些疑问
- 关于hibernate中级联操作的感慨
- 关于hibernate的一点见解
- 关于Hibernate的一点东西
- 关于 Hibernate 级联操作
- Hibernate级联关系总结
- 关于多线程的一点总结
- 关于SYS_CONNECT_BY_PATH 的一点总结
- 关于数据库的一点总结
- 关于反编译的一点总结
- 关于dijkstra的一点总结
- 关于floyd的一点 总结
- 关于ActiveMQ的一点总结
- Binder机制
- 欢迎使用CSDN-markdown编辑器
- tyvj 1359 收入计划 二分
- UVA 679 Dropping Balls (二叉树的编号)
- iOS NSThread NSOperation GCD的优缺点
- 关于hibernate级联的一点总结
- wsdl详解
- Java类初始化实验
- 1180
- 自调用匿名函数的2种写法
- C++输出单双精度数的小数点位数(如输出显示5.2365987456这样的数)
- 电子罗盘(方向传感器)
- Java web项目 爱分享社区评论管理部分代码
- java生成三级json对象