hibernate级联更新偶尔锁表的问题
我有3个实体类:entityA,entityB,entityC,分别对应数据库中的A,B,C3个表,表C是表B的子表,而表B是表A的子表
配置了级联关系:@Cascade({org.hibernate.annotations.CascadeType.ALL,org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
现在我每次修改实体entityA的时候是启动事务,先删除它下面所有的entityB和entityC对象,然后再重新创建下属的entityB和entityC对象,然后调用update(entityA)级联更新。
这样操作每次输出的SQL是先insert新创建的entityB和entityC对象,然后update entityA对象,最后delete原来的entityB和entityC对象。
问题:一般情况下是正常的,偶尔会出现死锁的情况,查看数据库的trace文件发现是在delete entityB对象时死锁。
有经验的大侠们能判断出问题出在哪里吗?
配置了级联关系:@Cascade({org.hibernate.annotations.CascadeType.ALL,org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
现在我每次修改实体entityA的时候是启动事务,先删除它下面所有的entityB和entityC对象,然后再重新创建下属的entityB和entityC对象,然后调用update(entityA)级联更新。
这样操作每次输出的SQL是先insert新创建的entityB和entityC对象,然后update entityA对象,最后delete原来的entityB和entityC对象。
问题:一般情况下是正常的,偶尔会出现死锁的情况,查看数据库的trace文件发现是在delete entityB对象时死锁。
有经验的大侠们能判断出问题出在哪里吗?
...全文
相关推荐
hibernate-note学习笔记
hibernate的使用越来越普遍,特别是web开发中常用SSH框架开发,所以学习hibernate很重要!希望此文件对你学习hibernate有些帮助。
hibernate学习资料
让你轻松学习hibernate技术(.pdf)
Hibernate 的学习笔记
教程 非常详细.适合初学者 配置信息 连接数据库.与Spring整合开发等
框架开发hibernate
java软件工程师使用的hibernate框架开发手册,这本书挺好的,推荐大家去看一下。
hibernate many-to-many级联保存,级联更新,级联删除
hibernate many-to-many级联保存,级联更新,级联删除


