在Hiberate事务中,出现抛异常或者其它原因导致没有执行commit或rollback方法时的安全问题

时间:2021-12-25 09:25:05
在Hiberate事务中,如果出现抛异常或者其它原因导致没有执行commit或rollback方法时,很可能会造成数据库中数据不一致现象的产生,代码如下: Transaction tx = session.beginTransaction() ; //user这个时候是持久态(Persisent),所以对password的操作将影响数据库的记录 user.setPassword("eeeeeeeeee") ; //清空了user对象 user = null ; //然后又调用user对象中的方法 System.out.println(user.getPassword()); //这样就会抛出异常,事务就不提交也不回滚了 tx.commit() ; 大家对这个问题怎样看,是否有安全隐患,应该怎样解决 .