我有一个场景,我在java服务中使用一组表读。 我注释了服务类@Transactional。
有没有办法在我的事务中锁定我读取的相应行,在我使用的所有表中,并在事务结束时释放它?
Ps:我正在使用Spring Hibernate,我是这个锁定概念的新手。 任何材料/示例链接都会有很大帮助
由于
答案 0 :(得分:0)
这取决于底层数据库引擎和选定的事务隔离级别。 某些数据库系统会对读取执行锁定,而某些数据库系统会使用MVCC,这意味着在事务完成之前,您的更新将对其他事务不可见,并且您的事务将在事务开始时对数据的快照进行操作。
所以一个简单的答案是:根据需要选择适当的高事务隔离级别(例如SERIALIZABLE)和支持它的数据库引擎。