【问题标题】:Locking all the rows used in the Transaction Java锁定事务 Java 中使用的所有行
【发布时间】:2013-09-25 13:29:28
【问题描述】:

我有一个场景,我在 java 服务中使用读取一组表。 我已经注释了服务类@Transactional。

有没有可能的方法来锁定我读取的相应行,在我使用的所有表中,在我的事务中,并在事务结束时释放它?

Ps:我正在使用 spring Hibernate,我对这个锁定概念很陌生。 任何材料/示例链接都会有很大帮助

谢谢

【问题讨论】:

标签: java spring hibernate jpa transactions


【解决方案1】:

这取决于底层数据库引擎和选择的事务隔离级别。 一些数据库系统对读取进行锁定,而另一些则使用 MVCC,这意味着在您的事务完成之前您的更新对其他事务不可见,并且您的事务将在事务开始时获取的数据快照上运行。

所以一个简单的答案是:根据您的需要选择适当高的事务隔离级别(例如 SERIALIZABLE)和支持它的数据库引擎。

http://en.wikipedia.org/wiki/Isolation_(database_systems)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    相关资源
    最近更新 更多