Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

之前一直用mybatis+mybatis-spring-1.1.1,系统升级mybatis使用后 mybatis-spring-1.2.2,

再其他配置均为改动的情况下执行出错: Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required

从SqlSessionDaoSupport 这个类的源代码中能够看出,原因是 mybatis-spring-1.2.0 中取消了自己主动注入 SqlSessionFactory SqlSessionTemplate

/** * Convenient super class for MyBatis SqlSession data access objects. * It gives you access to the template which can then be used to execute SQL methods. * <p> * This class needs a SqlSessionTemplate or a SqlSessionFactory. * If both are set the SqlSessionFactory will be ignored. * <p> * {code Autowired} was removed from setSqlSessionTemplate and setSqlSessionFactory * in version 1.2.0. * * @see #setSqlSessionFactory * @see #setSqlSessionTemplate * @see SqlSessionTemplate * @version $Id$ */
public abstract class SqlSessionDaoSupport extends DaoSupport {

  private SqlSession sqlSession;

  private boolean externalSqlSession;

  public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
    if (!this.externalSqlSession) {
      this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);
    }
  }

  public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
    this.sqlSession = sqlSessionTemplate;
    this.externalSqlSession = true;
  }
 ……
}

1.1.1中代码片段为:

 1 public abstract class SqlSessionDaoSupport extends DaoSupport {
 2 
 3     private SqlSession sqlSession;
 4 
 5     private boolean externalSqlSession;
 6 
 7     @Autowired(required = false)
 8     public final void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
 9         if (!this.externalSqlSession) {
10             this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);
11         }
12     }
13 
14     @Autowired(required = false)
15     public final void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
16         this.sqlSession = sqlSessionTemplate;
17         this.externalSqlSession = true;
18     }
19     ……
20 
21 }

可能是为了解决多数据源的问题吧,取消了自己主动注入。

没用到多数据源,不太关心这个。

解决方式:由于我们dao层是继承于一个dao基类,所以仅仅要在这个基类中注入随意一个属性就可以。 SqlSessionFactory 在spring配置文件里已经配置。

1 public class BaseDaoImpl extends SqlSessionDaoSupport {
2     @Resource
3     public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
4         super.setSqlSessionFactory(sqlSessionFactory);
5     }

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116828.html原文链接:https://javaforall.net

(1)
上一篇 2022年1月14日 下午11:00
下一篇 2022年1月14日 下午11:00


相关推荐

  • 如何利用 Pycharm 连接MySQL数据库

    如何利用 Pycharm 连接MySQL数据库MySQL 数据库是目前在 IT 行业中使用最广泛的数据库之一 在项目开发中也是经常需要对 MySQL 数据库进行操作 那么就有必要能够快速的查看数据库 及一方面利用程序实现对数据库的操作 另一方面则需要实现对程序的开发 为的就是提高开发的操作效率 做为一个 Python 程序猿 Pycharm 是则是最贴心的 伙伴 下面就给大家说下在 Pycharm 界面实现 MySQL 数据的展示 1 调出管理数据库入口点击菜单栏 View gt ToolWindowBa gt 在界面的

    2026年3月27日
    2
  • 博弈论基础_博弈论基础罗伯特

    博弈论基础_博弈论基础罗伯特博弈论这个环节特别好玩,游戏嘛(不会的话做题就不好玩了,当年打比赛比赛结束后两三分钟才推出来,一看答案想撕草稿纸)本篇文章含有大量逻辑证明,做题用不到,不想看的可以略过直接看结论和模板参考文献特别鸣谢孙大佬的PPT和精彩讲解威佐夫博弈尼姆博弈SG函数斐波那契博弈区间最值查询ST表详解预处理查询巴什博弈问题模型只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取…

    2022年10月15日
    4
  • 信贷风控模型开发—-模型简介

    信贷风控模型开发—-模型简介第一章风控模型简介1.1为什么要建模1.2什么是信用评分1.3常用的模型1.4概念解析:M0,M1,M2的定义下一章预告参考文献第一章风控模型简介本系列文章为笔者对信贷风控领域建模的一些学习研究心得汇总,以及一些代码示例,尽量会将信贷风控领域的一些基本概念阐述明白。1.1为什么要建模金融的所有业务,几乎都是和风险打…

    2022年6月5日
    37
  • Framework7 框架简介

    Framework7 框架简介什么是 Framework7Fr 是一款免费开源的移动 web 开发框架 类似的知名框架有 JqueryMobile sencha 用以开发 IOS7 风格 体验的混合移动应用和 web 应用 如果你需要 它还是一款绝好的移动应用原型框架 用以展示应用的功能细节 Framework7 框架的主要目的是使得开发者能够简单 快速的使用 HTML Javascript CSS 开发 IOS 风格的 w

    2026年3月18日
    1
  • 普罗米修斯Prometheus监控神器

    普罗米修斯Prometheus监控神器文章目录一、普罗米修斯Prometheus安装配置1.1实验环境一、普罗米修斯Prometheus安装配置1.1实验环境在这里插入代码片

    2022年7月19日
    18
  • 工欲善其事,必先利其器之—使用OpenGrok阅读源码

    工欲善其事,必先利其器之—使用OpenGrok阅读源码OpenGrok的介绍OpenGrokisafastandusablesourcecodesearchandcrossreferenceengine.Ithelpsyousearch,cross-referenceandnavigateyoursourcetree.Itunderstandsvariousprogramfilefor…

    2022年5月25日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号