spring事务即使对于未检查的异常也不会回滚

i5desfxk  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(184)


在上面的代码中,我将hibernate与mysql结合使用,hibernate会话由springsessioncontext管理(即在事务边界下使用sessionfactory.currentsession类)
下面的映像(dao层)是直接的用例,但是异常没有回滚我从简单的服务层调用了这个方法(即服务层调用dao层来执行crud操作)我了解了事务管理上的spring代理机制在这种情况下这个下面的映像类是dao接口的实现,所以spring将使用jdkdynamic proxy创建一个代理bean,这个方法是从服务层调用的(非事务类,但期望数据不应该被持久化异常应该回滚,但它被持久化在db中)

pengsaosao

pengsaosao1#

hibernate在整个事务处理完成后保存脏对象。您应该检查从第一个输入法到最后一个方法流。调用save函数时不处理hibernate持久化操作。它存储到一个缓冲区Map中,在事务完成后,它将被处理。您的流中是否有事务或try-catch块?

相关问题