【发布时间】:2015-10-19 22:12:18
【问题描述】:
休眠 3.2.6 甲骨文 11.x
我正在查看的代码使用此行锁定表行以进行更新:
Query query = createQuery("from MyTable t where t.col1 = :param1");
query.setParameter("param1", "blah");
query.setLockMode("s", LockMode.WRITE);
return (SysType) query.uniqueResult();
代码随后执行此操作:
getSession().saveOrUpdate(sysType);
getSession().flush();
其中 getSession() 返回一个 Hibernate 会话。
我的问题是 - 什么时候释放锁?如果 sysType 对象自读取后未更新,是否会通过 saveOrUpdate 调用 DB 并释放锁?
我正在查看我的应用程序的一个问题,我怀疑这是由于行被锁定而锁没有被释放从而阻塞其他读取引起的。
【问题讨论】:
标签: hibernate oracle11g locking