概念
- 只读事务中,只能有读操作;若增删改会报异常
- 只读事务内,同一个查询方法的多次调用查询结果一致,不会读取到其他事务修改的数据
- 加只读事务,ORM框架会对其进行查询优化
参考:https://www.pianshen.com/article/2061695048/
测试代码
1. 验证:只读事务只能有读操作
@Service
public class TestNumService {
@Autowired
private TestAMapper testAMapper;
@Transactional(readOnly = true)
public void queryNum(){
testAMapper.addNumA();
}
}
报错:
### Error updating database. Cause: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed
2. 验证:只读事务内,同一个查询方法的多次调用查询结果一致,不会读取到其他事务修改的数据
@Service
public class TestNumService {
@Autowired
private TestAMapper testAMapper;
@Autowired
private TestBMapper testBMapper;
@Transactional()
public void changeNum(){
System

本文探讨Spring事务中的readOnly属性,说明只读事务不允许执行增删改操作,并解释如何确保在同一事务内多次调用查询始终返回相同结果,同时不受到其他事务的影响。通过测试代码验证了这些特性。
最低0.47元/天 解锁文章
915

被折叠的 条评论
为什么被折叠?



