IDEA Invalid bound statement (not found) 工具引起

今天在开发项目时遇到了一个让我翻车坑, 具体是什么呢?让我来描述一下啊, 最近在做一个新项目-中台服务系统采用的是微服务架构, 框架新搭建的, 为了快捷开发,我们采用了springboot+mybatisPlus中的代码生成器, 由于我做的一个微项目中涉及到的业务非常复杂,为避免后期会涉及到个别表结构的改动, 因此没有一次生成此微项目所有涉及到的业务表对应的代码, 包名是自己创建的, 这就是问题背景5555
以下开始讲述问题情况
在开发过程中大部分方法都是尽量用mybatisPlus中Wrapper这种可以对表进行操作的方式, 直到这里编写代码自测都是没有问题的, 当业务中不得不是用多表关联时, 自定义编写了一个方法,自测时报bug出现了

调用BaseMapper出现Invalid bound statement (not found)错误

当时就很诧异, 怎么可能?其他功能都没问题,为什么自己编写的会这样?很明显这个bug的意思是找不到, 解决这种问题,我也就不赘述了, 常规来说加扫描注解, 查看路径等等肯定可以搞定, 于是我查看了各个可能导致这个问题的代码及配置例如

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这是我所创建的目录结构,别问为什么要直接写两层包, 统一规范.

核对之后发现没有问题啊, 然后再别的微项目中写一个自定义方法, 没有问题,可以调用,那说明不是整体架构的问题,只是我这个微服务的问题,然后打开其他项目,在结构上一一对比,还是一模一样, 搞不懂啊,最后打算看看是不是编译的时候包没有生成呢?解压生成的包target文件, 发现了该问题,哎呀,这个包怎么变成一个啦?应该是两层啊!此时找到问题,将mapper.product改成mapper/product问题解决了.
在这里插入图片描述

虽然问题解决了, 但还是存在疑问啊,工作这么多年了,怎么会出现这种问题呢?两个包怎么就变成一个包了呢?必须刨根啊, 于是又创建了几个二层包文件,用原点间隔与用斜杠间隔的确是不一样,但是以前用原点间隔就是建立多层包文件啊,不可能出现错误啊,嗯,可能是工具的问题, 以前用的是eclipse, STS等, 现在使用的是Idea, 是不是IDEA这个工具引起的呢?试一下,找出以前使用的工具STS,创建项目创建包,果然如此,不允许使用斜杠,原点间隔出层级,到此问题找到了,什么原因引起的也找到了,IDEA中创建包名可以包含原点,用斜杠分隔包层,还是感觉有点坑啊,因为这么个问题花了一个多小时啊,最可气的是IDEA工具中看文件目录是一样的,也不像STS和eclipse那样表示包文件时会有个三角的角标用于区分.

在这里插入图片描述
小小一个问题罗里吧嗦说了这么多, 嗯, 主要是记录一下, 也是提供一下我解决这个问题时的一个思路吧!逐层深入,逐级排查

此时还有另一个疑问需要确认, 那就是为什么使用mybatisPlus代码生成器生成的代码就能找到文件并且请求运行等等都是没有问题的呢?!而自己创建的扫描就不可以呢?那应该是扫描与处理机制不一样吧?可能根本就没不需要 xml文件一样可以使用吧?!, 下次查一下资料确认一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值