Hibernate+Spring:getHibernateTemplate与当前线程及事务提交问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 05:00:23
Hibernate+Spring:

getHibernateTemplate().getSessionFactory().getCurrentSession().beginTransaction().commit()难题!
-----------------------------------
有HibernateDAO extends HibernateDaoSupport implements myDAOInterface**
其内的方法:
public void save(Object object) {
getHibernateTemplate().save(object);
}

进行添加操作的时候,能够从控制台看到SHOWSQL信息,但是数据库当中没有数据插入(我猜测是其事务没有进行提交)

于是利用以下各式进行提交:
1.getHibernateTemplate().getSessionFactory().openSession().beginTransaction().commit()
2.getHibernateTemplate().getSessionFactory().openSession().getTransaction().commit()
3.getHibernateTemplate().getSessionFactory().getCurrentSession().getTransaction().commit()
4.getHibernateTemplate().getSessionFactory().getCurrentSession().beginTransaction().commit()
其中只有4能够正常执行,并且插入数据。其它三个都发出不同异常,有的是没有事务等,有的是没有绑定SESSION的。

补充:
a.在hibernate.cfg.xml当中,已经设置了
<property name="current_session_class_name">thread</prope

没有正确配置spring的事务啊……你在action类那里调用dao类的方式,或者说写的代码明显有问题!……你不会spring那里没有配置bean,还有方法也不会没有在spring里管理吧?总之不复杂但是比较繁琐的一些工作估计你都没做……………………

事务一般是这么搞的。
Session session = sessions.openSession();
Transaction tx = session.beginTransaction();
session.save(user);
tx.commit();
session.close();
sessions是SessionFactory