我使用Hibernate 3.3.2和mysql 5.0.77(innodb引擎)。每当我执行任何sql操作select,update等时,它会导致在mysql结束时回滚(通过queryin com_rollback列,我看到它每次递增)。我在一个hibernate事务中执行这些操作。当我在mysql端启用通用日志文件时,我看到每个事务都发生以下步骤: set autocommit = 0 执行查询(选择,插入,更新) 提交 回滚 autocommit = 1hibernate事务导致在mysql提交和随后回滚innodb
我不明白为什么回滚发生在mysql结束后提交。在应用程序日志以及mysql日志中没有错误。 。:(
。我将flush模式设置为flush_never,但仍然是.session.setFlushMode(FlushMode.NEVER); \t \t \t trx = session.beginTransaction(); 。 \t \t \t retObj =(T)session.createCriteria(clazz所)。新增( \t \t \t \t \t Expression.eq(属性,过滤器))uniqueResult(); \t \t}赶上(HibernateException的前){ \t \t \t LOG.finer( “休眠异常:{0}”,购); \t \t \t //trx.rollback(); \t \t \t抛出新的CpFaultException(clazz.getName(),ex); (例外e){ \t \t \t LOG.finer(“检索时发生异常:{0}”,e); \t \t \t //trx.rollback(); \t \t} finally { \t \t \t HibernateSessionFactory。closeSession(); \t \t} – user1100537 2011-12-16 06:53:32