Spring3,Hibernate,MySQL - 如何添加事务控制?

时间:2011-04-01 01:37:49

标签: java mysql hibernate spring-mvc

Spring3,Hibernate,MySQL - 如何添加事务控件?

我想了解如何将事务控制添加到以下内容中,以便其中一个调用确实可以回滚?

public void saveFriend(Friend friend, String rUser) 
{
   friend.setId(1);
   friend.setUsername(rUser);
   friend.setAddedDate(new Date());
   sessionFactory.getCurrentSession().saveOrUpdate(friend);

   friend.setId(2):
   friend.setUsername(rUser);
   friend.setAddedDate(new Date());
   sessionFactory.getCurrentSession().saveOrUpdate(friend);
}

2 个答案:

答案 0 :(得分:2)

The Spring manual has a huge amount of information on how you can manage transactions,以编程方式(如在RollingBoy的帖子中)或以声明方式使用注释或AOP。

您最好先查看文档,了解其工作原理。

答案 1 :(得分:0)


public void saveFriend(Friend friend, String rUser) 
{
   Session session = sessionFactory.getCurrentSession();
   Transaction t = session.beginTransaction();
   friend.setId(1);
   friend.setUsername(rUser);
   friend.setAddedDate(new Date());
   session.saveOrUpdate(friend);

   friend.setId(2):
   friend.setUsername(rUser);
   friend.setAddedDate(new Date());
   session.saveOrUpdate(friend);

   if(someCondition) {
      t.commit();
   }
   else{
      t.rollback();
   }
}