适当的休眠层设计

时间:2017-10-13 10:44:20

标签: java hibernate servlets concurrency

我正在使用hibernate开发一个java web应用程序,我遇到了一个基本问题:

  • 给定用户A触发一些Hibernate事务。启动事务,加载,提交事务。
  • 同时,用户B触发类似的交易。然后,将获得异常:不支持嵌套事务

似乎一次只能激活一个以上的交易。

我研究了一个解决方案并找到了很多概述解释,比如每会话交易模式,但没有任何实际意义。

所以我的问题是:为多个并发用户处理hibernate事务的正确和简单方法是什么?

1 个答案:

答案 0 :(得分:-1)

事务管理非常标准,只记得Hibernate抛出的任何异常都是致命的,你必须立即回滚事务并关闭当前会话。

您必须关闭每个事务。

Session session = null;
Transaction t = null;
try{
   session = HibernateUtil.getSessionFactory().openSession();
   t = session.beginTransaction();


   //do what ever you want(session);

   t.commit();


}catch(RuntimeException e){
      System.out.println(e.getMessage());

}