问题描述
数据更改正确,debug查询时值也确实更改了,但是保存时值还是原来的值,且不报错。
原因
:这是由于事物和更新语句,当程序没有走完的时候,没有执行保存,也许你后来使用了更新语句,更新语句由于更新缓存会清空缓存,会把你之前更改的值清空,到你后来保存的时候,你更改的值就没了。
错误示范
这里用的时传统的清空缓存,一般hibernate更新语句都会清除缓存,避免缓存取到以前未更新的值,影响操作![在这里插入图片描述](https://img-blog.csdnimg.cn/20201111100657519.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E4NTkwNDU1,size_16,color_FFFFFF,t_70#pic_center)
解决方法
1.保存之后,service.flush() (不推荐)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201111100500283.png#pic_center)
2.使用 super.executeSQLUpdate(sql, properties);
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201111100416502.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E4NTkwNDU1,size_16,color_FFFFFF,t_70#pic_center)