0

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

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

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

谢谢

4

1 回答 1

0

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

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

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

于 2013-09-25T13:57:11.630 回答