XML fragments parsed from previous mappers does not contain value for 问题

在使用mybatis-plus时,我通过<include>引用外部的xml的sql数据。然后就出现了一下的报错:

Caused by: java.lang.IllegalArgumentException: XML fragments parsed from previous mappers does not contain value for com.****.BaseInfo

BaseInfo就是定义在其他xml的<sql>的id。

我的代码绝对没有问题(解决问题之后我才坚信这一点)。网上有很多答案,什么版本啊,id重复了,id对不上。但是我的都不是。

我的理解是mybatis-plus的解析<include>的逻辑要晚于解析<select>等节点。虽然我不知道对不对,但是就我的发现大概是这样的。

所以如果我们执行查询语句时,会导致他解析不到<include>中的外部引用。这里我发现只要开始执行语句就会扫描扫描所有的mapper.xml。所以即便我们执行的语句中不包含<include>。也会有问题。但是,如果我们<include>的语句是在同一个<sql>下就没有问题。

而我的代码是在@PostConstruct注解中执行sql查询。所以有问题。我试了一下,如果试实现ApplicationContextAware的类也不能执行

以上是我的发现。具体为什么不想再看了,这个问题纠结了我一天多,烦!!!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值