solve a problem - 2019/12/18

问题描述

  • sybase分页存储过程中使用到了select into 语法,而select into 不能使用在已经开启事务管理的上下文中。而这里没有使用mybatis-guice 提供的@Transactional注解,但是程序仍然处在事务中。导致如下报错:
    clipboard.png

原因

  • 由于这里是在guice-mybatis 环境下,网上关于guice集成mybatis的文章多数绑定的都是JdbcTransactionFactory:


    image.png

而mybatis autocommit 模式默认是false,即开启了事务。JdbcTransactionFactory 会使用mybatis的提交策略。

解决方式

bindTransactionFactoryType(ManagedTransactionFactory.class); 而不是JdbcTransactionFactory。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 6,312评论 0 4
  • 我们已经讨论过如何配置 MyBatis 和创建映射文件了。MyBatis 的 Java API 就是你收获你所做的...
    郭艺宾阅读 925评论 0 3
  • 1,打开日志debug模式 1)配置文件中打开debug模式<logger name="org.springfra...
    沐兮_d64c阅读 3,080评论 0 1
  • 1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: -- 抽象:抽象是将一类对象的共同特征总结...
    ccc_74bd阅读 1,071评论 0 1
  • 明天6月13日闲置一天。主观上没有课程,没有约会。客观上宿舍昏暗,没有板凳可坐。 完整的八个小时可以做什么呢? !...
    瑞秋only阅读 273评论 0 0

友情链接更多精彩内容