运行项目,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 恢复为正确的动态拼接逻辑,问题即可解决。

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

相关推荐
kingx36 分钟前
Windows Server 2008 应急加固实战:7 项入侵痕迹排查与修复
数据库·windows·提权·应急响应·加固
xiaogai_gai17 分钟前
采购业务退款单同步实战:从钉钉审批流到金蝶云星空付款单
java·数据库·钉钉
AlickLbc1 小时前
DM-V8数据库证书过期处理过程记录
数据库
l1t1 小时前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb
超级新零售1 小时前
零售 SaaS 与本地部署,技术责任边界究竟怎么分?
数据库·零售
考虑考虑2 小时前
瀚高数据库
数据库·后端·postgresql
dishugj2 小时前
oracle日志切换三条命令区别
数据库
Patrick在香港2 小时前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
悟道书生3 小时前
(一)Navicate为什么转存结构和数据只转存表而不包含建库?
数据库·oracle
赤龙ERP3 小时前
ERP周报:连接器开闸、国产GPU进场与智能工厂253家
数据库·人工智能·大模型·rpa·erp·企业数字化·builderpattern