Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer

Springboot项目,使用postgresql数据库,mybatis做持久层框架,

复制代码
1 <select id="select" resultMap="BaseResultMap" parameterType="com.vo.TestVo">
2         select 
3             <include refid="Base_Column_List" />
4         from test
5         where state='2'
6         <if test="comCode != null" >
7             and com_code=${comCode}
8         </if>
9     </select>
复制代码

comcode的形式如:'1100'

执行查询时报错:

复制代码
### The error may exist in file [D:\workspaceAll\eclipseWorkspace\test\target\classes\mapper\custom\test\QcTestDao.xml]
### The error may involve com.dao.TestDao.select-Inline
### The error occurred while setting parameters
### SQL: select          id, comcode,name   from test   where state='2'        and com_code=00000000
### Cause: org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer
  建议:No operator matches the given name and argument type(s). You might need to add explicit type casts.
  位置:286
; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer
  建议:No operator matches the given name and argument type(s). You might need to add explicit type casts.
  位置:286] with root cause
org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer
  建议:No operator matches the given name and argument type(s). You might need to add explicit type casts.
  位置:286
复制代码

 解决方法:

1 <if test="comCode != null" >
2       and com_code=#{comCode,jdbcType=VARCHAR}
3 </if>

 

posted @   夏天的尾巴%  阅读(5456)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示