它应该仅阻止实体。
PostgreSQLhibernate方言会
forupdate在写入锁定的情况下添加:https :
//github.com/hibernate/hibernate-orm/blob/master/hibernate-
core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java#L549
(较新的版本只使用相同的实现)
forupdatePostgreSQL按行进行处理:https : //www.postgresql.org/docs/9.5/static/explicit-
locking.html
FOR
UPDATE导致SELECT语句检索的行被锁定,就像要进行更新一样。这样可以防止它们被其他事务锁定,修改或删除,直到当前事务结束为止。也就是说,将阻止其他尝试进行这些行的UPDATE,DELETE,SELECT
FOR UPDATE,SELECT FOR NO KEY UPDATE,SELECT FOR SHARE或SELECT FOR KEY
SHARE的事务,直到当前事务结束为止。相反,SELECT FOR
UPDATE将等待在同一行上运行了任何这些命令的并发事务,然后将锁定并返回更新的行(如果删除了该行,则不返回任何行)。



