在Hibernate 结合 SpringMVC 做一个简单保存操作,期间遇到一些问题,关于Hibernate的事务,Session的
close() 和flush() 、事务的管理。
/**
* 1 :增加用户信息
*/
public void addUser( User user ) {
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
session.save(user);
session.close();
}
1:junit 测试通过,hibernate 不发送插入语句,数据库没有对应数据更新。
/**
* 2:增加用户信息
*/
public void addUser( User user ) {
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
session.save(user);
session.flush();
}
2:junit 测试通过,hibernate 发送插入语句,数据库对应数据更新。
3:然后开启事务,将如下代码都加入到addUSer( User user ) 方法中,1既不发送语句,也不更新数据;2是发送语
句,不更新。
session.beginTransaction();
4:因为hibernate中的事务默认是false ,所以在开启事务是要显示提交事务,加入
session.getTransaction().commit();
保存数据成功。