今天碰到了这个问题,直接调用 Session.save() 之类的方法虽然看上去一切正常,但是数据并没有真正保存到库中!
上网搜到两篇文章,《 hibernate- 事务管理 http://www.javaeye.com/topic/177988 》这篇文章提到 Hibernate 在 openSession 和 beginTransaction 的时候都会把 JDBC 连接的 AutoCommit 设置为 false ,这是根本原因。《 hibernate3 保存对象为什么必须使用事务 http://blog.csdn.net/sunyujia/archive/2008/06/07/2520106.aspx 》这篇文章提到可以用 hibernate.connection.autocommit 来设置,但是自己查了一下源代码,“ connection ”是 Deprecated 的!
所以,还是养成使用事务的好习惯吧!