锁定Transaction Java中使用的所有行

时间:2013-09-25 13:29:28

标签: java spring hibernate jpa transactions

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

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

Ps:我正在使用Spring Hibernate,我是这个锁定概念的新手。 任何材料/示例链接都会有很大帮助

由于

1 个答案:

答案 0 :(得分:0)

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

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

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