我正在使用Hibernate 3.6.2。
当对表进行并发更新时,我遇到了表上的锁问题。有多个表与外键连接。发生的事情是,当一个更新正在进行时,下一个更新将等待锁定被释放。然后锁定在数据库上,必须手动杀死。 如果有数百名用户试图在几秒钟的时间内更新同一实体,问题就会恶化。
下面发生的事情是,在更新此实体时,Hibernate会触发更新,然后是删除然后插入。我从实体中删除对象然后执行flush()。然后我将新对象添加到实体中,然后在同一事务中执行merge()然后commit()。
更新完成后,这些锁是否有自行释放的方式?或者是问题,因为我在同一个事务中执行flush(),merge()和commit()?