先贴代码:
这就是一个最普通的crud,但是在加上了事务注解以后,更改后的值并没有真正的提交到数据库,我的数据库值并没有改变,但是方法执行成功了。 问题1:为什么会发生这样的情况,怎么解决? 问题2:update后重新在数据库查出的数据 是从哪儿来的?数据库既然并没有改变,那么查出来的数据应该是之前的数据才对啊,是缓存问题嘛?
先贴代码:
这就是一个最普通的crud,但是在加上了事务注解以后,更改后的值并没有真正的提交到数据库,我的数据库值并没有改变,但是方法执行成功了。 问题1:为什么会发生这样的情况,怎么解决? 问题2:update后重新在数据库查出的数据 是从哪儿来的?数据库既然并没有改变,那么查出来的数据应该是之前的数据才对啊,是缓存问题嘛?
数据库已经更新了,事务顾名思义是一个方法内的事务,updat和select在一个方法属于同一个事务,方法结束后会才会提交,所以select查询不到,但是数据库里面查询是有的。