休眠开始事务抛出异常

hibernate begintransaction throwing exception

我是休眠新手。请让我知道下面的代码有什么问题?

f1()
{
   try {
       s = HibernateUtils.getSessionFactory().getCurrentSession();
       tx = s.beginTransaction();
       // do some task
       tx.commit();
   } catch(Exception e) {
       tx.rollback();
       throw e;
   }
}

f2()
{
    try {
       s = HibernateUtils.getSessionFactory().getCurrentSession();
       tx = s.beginTransaction();
       f1();
       tx.commit();
   } catch(Exception e) {
       tx.rollback();
   }
}

f1() 中的 begin transaction 语句抛出异常。提前致谢。

你不能同时激活超过一个transaction (not session),你的方法已经在交易中,你不需要创建一个新的;移除 s.beginTransaction();

或者可以传递相同的 transaction,或者创建一个新的。

这里的概念是 - getCurrentSession() return 相同,你正在调用 beginTransaction() 两次。