java service层方法是这样的:
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
public PageBean<Product> queryByPageBean(PQueryTDO pQueryTDO, PageBean<Product> pageBean) {
//省略
}
我的疑问有3点:
1、Propagation.NOT_SUPPORTED意思是不是指不开启事务?
readOnly=true的意思是不是指只支持读?
如果上面两个问题都是回答是的话,那这个配置不是存在冲突吗?Propagation.NOT_SUPPORTED是不开启事务,
而readOnly=true又是让事务只支持读。都没有开启事务,怎么设置事务为只读呢?
2、本人有这样的经历(亲测),service层的代码不变,然后通过navicat工具在mysql数据库中,把一条记录的字段export_count 设置成10并且设置成功。然后回到代码中,打断点调试,发现export_count的值并没有变成10还是旧的数据。如果把tomcat重启再进行断点调试,这时候export_count的值变成了10。这个也是我不明白的地方之一
3、一个事务没有读取到另外一个事务更新后的数据,这个属于脏读?不可重复读?虚读?
真心请教大神帮忙指点一下~~