【问题标题】:Spring Data locking弹簧数据锁定
【发布时间】:2015-10-19 17:28:57
【问题描述】:

我正在使用 CrudRepository 和带有 @Lock 注释的方法。这将导致行上的共享/排他锁。底层数据库是 Postgresql 9.4。但是有没有办法为事务锁定整个表?

更新: 我要锁定整个表的问题: 考虑一个包含具有单个值(整数)的行的表。每个事务都必须计算表中值的总和,并将总和作为新行插入。下一个事务必须再次计算值的总和,但现在使用新插入的值。

可能有更好的解决方案,欢迎其他想法。

【问题讨论】:

  • 您认为为什么需要这样做?锁定整个表通常不是一个好主意,只能被视为“最后的手段”
  • 是的,我想把它作为最后的手段。我知道有一些严重的性能损失。

标签: spring postgresql jpa spring-data


【解决方案1】:

你可以在打开交易的时候试试这个:

entityManager.createNativeQuery("LOCK TABLE public.table_name IN
EXCLUSIVE MODE").executeUpdate();

当然是 PostgreSQL 特定的,但你也有特定的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-02
    • 2019-05-03
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 2023-03-08
    相关资源
    最近更新 更多