【发布时间】:2018-08-15 06:34:28
【问题描述】:
只是为了确保我正确理解事情的运作方式。
如果我这样做 em.lock(employee, LockModeType.PESSIMISTIC_WRITE); - 它会只阻止这个实体 (employee) 还是整个表 Employees?
如果重要的话,我说的是PostgreSQL。
【问题讨论】:
-
它不是 stackoverflow.com/questions/33062635/… 的副本,因为我有一个具体的问题:它是否锁定了 WHOLE 表
-
为了让它更有趣,MSSQL 中的
LockModeType.PESSIMISTIC_WRITE将转换为with (updlock, rowlock),其中行锁可以完全升级到表或页面,因为这只是一个提示。更有趣的是,查询一些不属于覆盖非聚集索引(或聚集)的条目仍然会相互阻塞......你真的必须查看并了解数据库的内容完全可以。 -
我知道——这正是我的观点(我希望我能够将它传达给你)——查看生成的查询并尝试理解这些查询,不要盲目相信 hibernate(或任何其他工具)
-
@Eugene,是的,我明白你的意思。
-
看,告诉你;)
标签: java postgresql hibernate jpa locking