在调试的过程当中,遇到了org.hibernate.TransactionException: Transaction not successfully started

到网上查了一下资料,网友反应说是session的关系,我是直接获取HibernateTemplate的session,然后beginTransaction(),

这样出现上述的错误,改为openTransaction的话,问题解决了。

原来的代码如下:


try{
Transaction transaction = super.getHibernateTemplate().getSession().beginTransaction();
super.saveAll(list);
super.deleteAll(mainList);
transaction.commit();
}catch(Exception e){
e.printStackTrace();
LOGGER.error("多条日志详细信息记录转储失败",e);
}

修改成如下的代码问题得到了解决:

Session session = super.getHibernateTemplate().getSessionFactory().openSession();
try{
Transaction transaction = session.beginTransaction();
super.saveAll(list);
super.deleteAll(mainList);
transaction.commit();
}catch(Exception e){
e.printStackTrace();
LOGGER.error("多条日志详细信息记录转储失败",e);
}finally{
session.close();
}

posted on 2014-03-24 11:10  帅的惊动了党  阅读(1928)  评论(0编辑  收藏  举报