在 Spring Boot @Configuration 注解类中使用 Mybatis 查询数据库启动报错_@config获取数据库_wujunyucg的博客-程序员宅基地

技术标签: spring  mybatis  spring-boot  数据库  

场景

想在 Spring Boot 启动时使用 guava 缓存,将数据库的部分内容放入缓存中,所以写了一个 CacheConfig 类,但是在启动过程中报错,错误为:

@Configuration
public class CacheConfig {
    

}
Mapped Statements collection does not contain value for com.xxx.xxx.dao.ScoreDao.selectById

类似情况为:一个 person 关联了一个 score,拥有字段 scoreId(外键),并且在Person 类中有一个成员 Score score,使用 Mybatis 在查询 person 时一并将 score 查询出来。这段程序在之前已经运行测试成功。
Dao 中方法为:
PersonDao

@Select("select " + FIELDS + " from person")
@ResultMap("PersonMapper.PersonResult")
public List<Person> selectAll();

ScoreDao

@Select("select " + FIELDS + " from score where sid = #{sid}")
Score selectById(long sid);

Person ResultMap 在 xml 文件中配置为

<mapper namespace="SellerRelationMapper">  
    <resultMap type="SellerRelation" id="SellerRelationResult">  
        <id property="sid" column="sid"/>  
        <result property="scoreId" column="score_id"/>  
        <association property="score" column="score_id" select="com.xxx.xxx.dao.ScoreDao.selectById"/>  
    </resultMap>  
</mapper>

原因

在执行 CacheConfig 类中方法时,ScoreDao 还没有被注入,所以无法被找到。

解决方法

原本想是否能控制依赖注入的顺序,让 CacheConfig 在 ScoreDao 被注入后再执行,但是没有查询到方案,于是只能在 CacheConfig 类或被 CacheConfig 类依赖的 Service 添加如下代码

@Autowired
private ScoreDao ScoreDao;
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wujunyucg/article/details/78414455

智能推荐

Elastic-job-分布式定时任务框架简介和使用_elastic-job-common-core_magic_happy的博客-程序员宅基地

一.简介Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供最轻量级的分布式任务的协调服务,外部依赖仅Zookeeper。二.基础概念1. 分片概念任务的分布式执行,需要将一个任务拆分为多个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项。例如:有一个遍历数据库某张表的作业,现有2台服务器。为了快速的执行作业,那么每台服务器应执行作业..._elastic-job-common-core

软考数据库详细知识点整理(全)_小强在学习的路上的博客-程序员宅基地

若待排序的记录数目n 较小,可采用直接插入排序和简单选择排序。由于直接插入排序所需的记录移动操作较简单选择排序多,因此当记录本身信息量较大时,用简单选择排序方法较好。若待排序记录按关键字基本有序,则宜采用直接插入排序或冒泡排序当n 很大且关键字的位数较少时,采用链式基数排序较好。若n 较大,则应采用时间复杂度为o(nlogn)的排序方法,例如快速排序、堆排序或归并排序。_软考数据库

POP3、SMTP、IMAP和Exchange都是个什么玩意?_程序员陆业聪的博客-程序员宅基地

很多时候一直对POP3、SMTP、IMAP和Exchange等迷迷糊糊的。下面就整理说明一下:当前常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。下面分别对其进行简单介绍。1、SMTP协议  SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传

简单高效的资源管理系统go-fastdfs(替代nginx)_go 替代nginx_吴小凉的博客-程序员宅基地

github地址基于GO语言和fastdfs的文件资源管理系统,部署起来简单高效,支持断点续传,下载缩略图,简单迁移,token下载验证等…步骤1:下载github的filesever文件步骤2:存放到服务器有大容量的目录下。步骤3:./filesever 编译文件。如果成功启动,先退出。步骤4:启动后会在当前目录形成go-fastdfs的文件目录,进入conf文件夹,vim cfg文件..._go 替代nginx

MD5_hhl201818的博客-程序员宅基地

参考:https://www.51-n.com/t-4182-1-1.html&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Document&lt;/title&gt;&lt;/head&a

Unity实现oculus的手柄交互功能_unity vr 手柄和手套的切换-程序员宅基地

1.摇杆实现空间移动在Project列表搜索预制件OVRPlayerController,拖到Hierarchy中即可2.显示手和手柄在Project列表搜索LocalAvatar或直接在Oculus/Avatar/Prefabs 找到LocalAvatar预制件。拖动LocalAvatar到Hierarchy中的 OVRCameraRig->TrackingRig目录下,在Inspector中设置 show third Person 去掉勾选设置 Other->Can _unity vr 手柄和手套的切换

随便推点

luogu5018:对称二叉树:noip2018普及组T4-程序员宅基地

题目连接该题是luogu试炼场的2-14:T4题目大意给出一棵树;求最大的对称子树的规模题目分析对称树:以某个节点为根,一直延伸到叶子,完全对称我的读题最大误解,因为下面的样例:上图的样例给了我一个极大的误导,以为是蓝色框和绿色框两个子树对称,所以“对称子树的单边值”是3。正解应该是:上图红框中的子树内部对称,所以对称的子树节点总数是3。解题思路:...

MySQL数据操作之多表查询——内连接、左连接、右连接、子查询_mysql 双子查询加右链接_测试最靓仔的博客-程序员宅基地

目录1、数据准备2.多表查询的sql三步法3.内连接前言:本期咱们学习多表查询的内连接、左连接、右连接。1、数据准备-- 创建student库:studentcreate database student default character set utf8 collate utf8_general_ci;/*创建学生表:students,学生号为Sid,数据类型为varchar(10),主键,姓名为name,数据类型为varchar(10),性别为sex,数据类型为varchar(1),_mysql 双子查询加右链接

pandas group分组与agg聚合_group.agg_已删除ddd的博客-程序员宅基地

import pandas as pddf = pd.DataFrame({'Country':['China','China', 'India', 'India', 'America', 'Japan', 'China', 'India'], 'Income':[10000, 10000, 5000, 5002, 40000, 50000, 8000,..._group.agg

三分钟内教你使用Ngrok实现内网穿透_ngrok内网穿透图文教程_nelson620的博客-程序员宅基地

1.下载和运行Ngrok下载后解压缩得到以下两个文件夹windows_amd64这个文件夹里有两个文件,其中一个是bat后缀的批处理文件,双击它会弹出一个黑窗口,另外一个文件不用管它。2.注册Ngrok账号并创建隧道然后我们要在刚刚下载Ngrok那个网页上注册一个账号然后登陆,登录之后点击开通隧道可以选择0元购买的那一个然后创建隧道,注意这里要点两次确认按钮创建完隧..._ngrok内网穿透图文教程

NOIP大纲整理:(四)图论基础与程序对拍_liusu201601的博客-程序员宅基地

图论算法:1、图的遍历:宽搜:bfs 队列的使用:很少单独出题,结合邻接表,比较容易理解2、图的遍历:深搜:dfs 递归的使用:很少单独出题,结合邻接表,比较容易理解3、最小生成树:Kruskal+prim算法 已经整理了一些入门题目:最小生成树基础4、最短路径:spfa:邻接表的应用 邻接表的使用+宽搜思维+循环队列的应用。算是入门必背题...

UDS——Unified Diagnostic Services_19 02 ff_Frey_Liu的博客-程序员宅基地

UDS诊断原理分析根据UDS的诊断协议,汽车上的控制系统需要根据规则化的诊断协议进行故障记录和处理,最终体现为诊断故障编码DTC的方式。根据ISO-14229协议规定,每个DTC均由DTC内容和DTC状态表示。DTC内容代表了该故障的具体故障方式、故障标志等信息,例如车身系统中ABS传感器故障。DTC状态则表示当前的故障处于什么状态,它由8位组成,每个位代表了不同的故障状态信息,详细意义如下表..._19 02 ff

推荐文章

热门文章

相关标签