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对象时死锁。
有经验的大侠们能判断出问题出在哪里吗?