如何让myBatis update语句在JavaSpring应用程序中提交?

如何让myBatis update语句在JavaSpring应用程序中提交?,java,spring,commit,mybatis,maven-jetty-plugin,Java,Spring,Commit,Mybatis,Maven Jetty Plugin,我在jetty maven插件中运行Java Spring应用程序。调用myBatis insert语句时,该语句将自动提交。但是,当我调用update时,语句没有提交。根据myBatis文件(http://www.mybatis.org/spring/transactions.html): 不能在Spring管理的SqlSession上调用SqlSession.commit()、SqlSession.rollback()或SqlSession.close() 如何将应用程序配置为在myBati

我在jetty maven插件中运行Java Spring应用程序。调用myBatis insert语句时,该语句将自动提交。但是,当我调用update时,语句没有提交。根据myBatis文件(http://www.mybatis.org/spring/transactions.html):

不能在Spring管理的SqlSession上调用SqlSession.commit()、SqlSession.rollback()或SqlSession.close()

如何将应用程序配置为在myBatis update语句上自动提交

我启用了日志记录。以下是日志在更新时的状态:

2012-12-12 17:20:31669调试[org.mybatis.spring.SqlSessionUtils]-创建新的SqlSession 2012-12-12 17:20:31669调试[org.mybatis.spring.SqlSessionUtils]-SqlSession[org.apache.ibatis.session.defaults。DefaultSqlSession@19e86f9]未注册同步,因为同步未处于活动状态 2012-12-12 17:20:31669调试[org.springframework.jdbc.datasource.DataSourceUtils]-从数据源获取jdbc连接 2012-12-12 17:20:31669调试[org.springframework.jdbc.datasource.DriverManager数据源]-创建新的jdbc DriverManager连接到[jdbc:jtds:sqlserver://test/test] 2012-12-12 17:20:31684调试[org.mybatis.spring.transaction.SpringManagedTransaction]-JDBC连接[net.sourceforge.jtds.JDBC。ConnectionJDBC3@af7eaf]不会由Spring管理 2012-12-12 17:20:31684调试[com.persistence.MyMapper.updateMyItem]-使用连接[net.sourceforge.jtds.jdbc]的ooo。ConnectionJDBC3@af7eaf] 2012-12-12 17:20:31684调试[com.persistence.MyMapper.updateMyItem]-==>准备:更新myTable设置日期=?其中id=? 2012-12-12 17:20:31700调试[com.persistence.MyMapper.updateMyItem]-==>参数:2012-11-26 00:00:00.0(时间戳),0(整数) 2012-12-12 17:20:31700调试[org.mybatis.spring.SqlSessionUtils]-关闭非事务性SqlSession[org.apache.ibatis.session.defaults]。DefaultSqlSession@19e86f9] 2012-12-12 17:20:31700调试[org.springframework.jdbc.datasource.DataSourceUtils]-返回到数据源的jdbc连接

插入时,日志为:

2012-12-12 16:35:53932调试[org.mybatis.spring.SqlSessionUtils]-创建新的SqlSession 2012-12-12 16:35:53932调试[org.mybatis.spring.SqlSessionUtils]-SqlSession[org.apache.ibatis.session.defaults。DefaultSqlSession@22da8f]未注册同步,因为同步未处于活动状态 2012-12-12 16:35:53932调试[org.springframework.jdbc.datasource.DataSourceUtils]-从数据源获取jdbc连接 2012-12-12 16:35:53932调试[org.springframework.jdbc.datasource.DriverManager数据源]-创建新的jdbc DriverManager连接到[jdbc:jtds:sqlserver://test/test] 2012-12-12 16:35:53932调试[org.mybatis.spring.transaction.SpringManagedTransaction]-JDBC连接[net.sourceforge.jtds.JDBC。ConnectionJDBC3@3af3cb]不会由Spring管理 2012-12-12 16:35:53932调试[com..persistence.MyMapper.insertMyItem]-使用连接[net.sourceforge.jtds.jdbc]的ooo。ConnectionJDBC3@3af3cb] 2012-12-12 16:35:53932调试[com.persistence.MyMapper.insertMyItem]-==>准备:插入myTable(id,日期)值(?,) 2012-12-12 16:35:53932调试[com.persistence.MyMapper.insertMyItem]-==>参数:5(整数),2012-11-26 00:00:00.0(时间戳) 2012-12-12 16:35:53932调试[org.mybatis.spring.SqlSessionUtils]-关闭非事务性SqlSession[org.apache.ibatis.session.defaults]。DefaultSqlSession@22da8f] 2012-12-12 16:35:53932调试[org.springframework.jdbc.datasource.DataSourceUtils]-返回到数据源的jdbc连接


insert和update log语句似乎表明了相同的基本步骤。

经过进一步研究,我发现这是一个客户问题。它总是在update语句中为id传递一个0。记录的ID大于0。在此过程中,我配置了spring txn管理。就在那时,我观察到了相同的行为,并意识到这一定是服务器端配置问题以外的问题。很抱歉,在发布之前没有捕捉到