今天在实现一个需求时,在某个方法里通过 getSession.save()来保存数据时一直失效,既不报错也不保存数据,但是其他的不同类中的getSession.save()正常,以下为我的解决思路/方案
1.执行强制保存
这是在没有办法的情况下使用的,如果你其他类的保存是正常的那么,很可能你这个类的事务是有问题的,如果你实在解决不了那么可以采用代码块的方法来强制保存,亲测有效
getSession.flush(); //他主要做了两件事:清理缓存。执行SQL。
2.排查此方法或类是否受事务管理
如果上面的方法已经解决你的问题那你可以按照我下面的方式来排查一下,首先需要去看一下你的事务配置,是否当前方法或类有没有被事务所管理,如果没有的话,需要让事务管理一下当前类,同时你也可以自己测试一下,通过上面方法保存数据的同时往外抛一个异常,如果没发生了回滚,哪证明导致这个保存失败的原因很可能就是此方法或类没有受事务管理,那么你就需要让事务管理他,如果发生了回滚,成功以后你可以试试去掉上面的方法还能保存成功不。