当前页面: 开发资料首页 → J2EE 专题 → 高手解答!有关hibernate auto commit mode 的问题
高手解答!有关hibernate auto commit mode 的问题
摘要: 高手解答!有关hibernate auto commit mode 的问题
我用了hibernate 的JDBC事务,在hibernate.cfg.xml的相关配置如下:
org.hibernate.transaction.JDBCTransactionFactory
Transaction tx = session.beginTransaction();
tx.commit();//有问题的语句
为什么去掉改语句还能更新数据库呢?每次开启session难道不是自动取消“自动提交模式”吗?
其实update或者save进行的操作已经提交,再事务执行中如果有错误就进行回滚,如果没有错误,怎进行commit提交事务。
hibernate 的JDBC事务难道不是每次打开session后取消auto commit mode 吗?
路过,友情up...
大虾们请指点一下!
什么问题
我不加“tx.commit()”,也能更新数据库,按理我用了hibernate 的JDBC事务必须加了这句话才能更新数据库(用的Oracle9)。
jdbc事务是在session打开后,把自动提交属性关闭(AutoCommit=false),除非是非事务性数据库,对于oracle9的不大了解,就我所知,mysql的isam型就是例子之一
System.out.(session.getFlushMode()); //打印出来看看
session.setFlushMode(FlushMode.COMMIT); 改成这个试试