因为hibernate中对托管状态的bean调用set方法后实际上最终是会更新到数据库。这样会有一个问题。
public String checkAndUpdate(){
for(i=0;i<list.size();i++){
Bean bean = list.get(i);
bean.setXXX(“12345”);//这样实际上会更新到数据库。
//TODO
if(bean.检查状态失败()){
return “无法更新,推出程序方法”;
}
dao.update(bean);
}
return "OK";
}
我在调用checkAndUpdate方法的时候某个数据在遍历检查状态的时候是吧了返回了“无法更新,推出程序方法”,但是数据被更新了,我是希望set的值回滚
不知道怎么回滚,dao类是spring注入的,也无法获取session对象。这种情况下有其他办法吗?
抛个RunTimeException异常吧
我觉得你的逻辑不对啊。看你的代码是想实现一个检查没通过就都不能更新,那为啥不先检查状态,通过再做修改呢?
spring配置中是有事务管理的配置的,你上网百度一下spring的事务管理配置,再通过注解就很简单的实现了