问题描述
在Service层调用Dao层进行业务逻辑查询时出现异常,但是配置的事务管理并没有生效,没有数据回滚因此产生了数据安全问题。
问题原因
在检查完配置无误后发现,我原本是通过让Dao层获取绑定线程(ThreadLocal)上的Connection对象来达到Service层中操作的是同一个Connection。但是实际过程中,虽然Dao层确实使用的是同一个Connection,但是并不能达到回滚的效果。
解决措施
让Dao层通过调用同一个 JdbcTemplate来达到出现数据异常可以回滚的效果。