如何防止休眠持久性对象更新 如果我们为该对象设置任何数据


WAObservations observation = getHibernateTemplate().get(WAObservations.class,1);

在此处设置一些数据并更新状态

observation.setObservationStatus(Constants.observation_completed);

状态更新后,将在以下两个依赖项表中生成新记录

WAMicroObservations aMicroObservations = new WAMicroObservations();
aMicroObservations.setWaObservationId(observation);

设置更多与微观观测相关的值。如果这里出现任何异常,这两个依赖关系表不会更新。它很好。但是上面WAObservations表自动更新了。

WAChemObservations aChemObservations = new WAChemObservations();
aChemObservations.setWaObservationId(observation);

getHibernateTemplate().save(aMicroObservations);
getHibernateTemplate().save(aChemObservations);

如何防止 WAObservations 表更新 如果在执行代码时引发任何异常?

任何帮助,将不胜感激。

提前谢谢!!

如果不看一下你的真实业务代码,很难猜测,但我假设你只需要正确定义你的交易边界。如果要采用"全有或全无"方法,请为所有操作定义一个通用事务。仅当所有代码都完成且没有任何异常时,才会提交修改语句。否则,如果发生异常,将发生回滚。

也许看看声明式事务管理。

至少使用 SessionFactory.getCurrentSession() 而不是已弃用的 HibernateTemplate。

最新更新