运行项目,sql报错无效索引 已解决

报错内容:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='dto.inDeptCode', mode=IN, javaType=class java.lang.Object, jdbcType=VARCHAR, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #5 with JdbcType VARCHAR . Try setting a different JdbcType for this parameter or a different configuration property. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #5 with JdbcType VARCHAR . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.sql.SQLException: 无效的列索引

原因:在这个sql语句里,if便签的前后我写了注释。在 MyBatis 的 XML 映射文件中,如果在 <if> 等动态标签前后添加注释,这些注释可能会被原样拼接到 SQL 语句中,破坏原有的语法结构(例如导致 WHERE 子句前后出现多余的 AND/OR 或括号不匹配),使得生成的 SQL 语句逻辑混乱甚至语法错误,进而导致数据库执行时无法正确解析查询条件,出现"无效索引"或直接报错;删除注释后,SQL 恢复为正确的动态拼接逻辑,问题即可解决。

解决:删除注释,重新运行,报错解决

相关推荐
青柠代码录2 小时前
【MySQL】SELECT 语句执行流程
数据库·mysql
李慕婉学姐2 小时前
Springboot养老服务管理系统c0t92vu6(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
霖霖总总2 小时前
[Redis小技巧10]深入 Redis Stream:从原理到生产级实践
数据库·redis
扑克中的黑桃A2 小时前
基于代价模型的连接条件下推:复杂SQL查询的性能优化实践
数据库
数据知道2 小时前
MongoDB分片集群监控:详解Balancer状态与Chunk分布分析
数据库·mongodb
⑩-2 小时前
Redis内存淘汰策略?如何处理大Key?
java·数据库·redis
Y001112363 小时前
Day3-MySQL-SQL-2
数据库·sql·mysql
V1ncent Chen3 小时前
从零学SQL 07 数据过滤
数据库·sql·mysql·数据分析