com.highgo.jdbc.util.PSQLException: 错误: 操作符不是唯一的: integer = character varying(mybatis postgreSql)

1543年前瀚高数据库1119

postgresql抛出的异常,是因为数据库类型是int类型,而java传参String造成。有2种解决方案,建议第二种方案更方便简洁

image.png

解决方案一:

代码

public int deleteSysUserSignByIds(String ids) {
    return sysUserSignMapper.deleteSysUserSignByIds(Convert.toStrArray(ids));
}

XML:

<delete id="deleteSysUserSignByIds" parameterType="String">
    delete from sys_user_sign where id in
    <foreach item="id" collection="array" open="(" separator="," close=")">
        #{id}
    </foreach>
</delete>

而数据库的id类型是int类型

修改方案:

public int deleteSysUserSignByIds(String ids) {
    return sysUserSignMapper.deleteSysUserSignByIds(Convert.toLongArray(ids));
}

传入的string数组转换为integer数组或者long数据即可。

当然对应接口方法的接收参数类型也要做相应改变。

解决方案二:(只需修改下xml文件)

解决方案是在xml内将string类型的参数变量 强转为int类型,在变量后加::int

<delete id="deleteGoodsRecordByIds" parameterType="String">
    delete from goods_record where id in
    <foreach item="id" collection="array" open="(" separator="," close=")">
        #{id}::int
    </foreach>
</delete>


相关文章

小虾米 的好孕报告(胎停2次)

 填写日期2018年4月22日群名片D12-小虾米–北京 城市北京胎停2次空囊次数上次流产日期2017年6月本次末次月经2018.1.24上次流产方式无痛清宫之前是否 生育过有有胎...

邮箱授权码获取方式

   查看QQ邮箱授权码获取方法查看网易邮箱授权码获取方法...

idea中 springboot项目修改页面不编译 无法生效问题解决

idea中 springboot项目修改页面不编译 无法生效问题解决

直接上图:1、找到启动类2.点击下拉,出现下图,点击Edit Configurations3.打开后如图:4.两项全部选中update classes and resources。点击apply应用。...

jquery.validate.min.js自定义添加验证方法(增加身份证、电话验证等)

1、添加验证方法在jquery.validate.js文件中直接添加验证方法,例如:jQuery.validator.addMethod("Specialstring", func...

dwz+jfinal 市县下拉菜单二级联动(实例)

在DWZ文档中对组合框combox的是这样描述的:在传统的select 用class 定义:class=”combox”, html 扩展:保留原有属性name,  增加了属性:ref。re...

竟然可以这样打扮!女人呆了!男人痴了!

来个轻松点的哇,惊呆了,肯定贵不了,立刻去瞅瞅...

评论列表

新闻头条
2021-05-12 20:17:01

文章不错支持一下

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。