如何防止Hibernate Persistence对象更新如果我们将任何数据设置为该对象?

时间:2017-05-20 11:27:12

标签: hibernate

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表更新如果在执行代码时引发任何异常?

任何帮助,将不胜感激。

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

如果不查看您的真实业务代码,很难猜到,但我认为您只需要正确定义您的事务边界。如果你想去全部或全部的话。方法,为您的所有操作定义一个公共事务。只有当所有代码完成且没有任何异常时,才会提交修改语句。否则,如果发生异常,将发生回滚。

也许看看declarative transaction management

至少使用public interface UserRepository extends MongoRepository<User, String> 代替deprecated HibernateTemplate