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

1545年前 (2021-05-11)瀚高数据库2977

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>


本文原创,转载必追究版权。

分享给朋友:

相关文章

org.tigris.subversion.javahl.ClientException:Attempted to lock an already-locked dir

 svn更新或提交时候报错:org.tigris.subversion.javahl.ClientException:Attempted to lock an already-locke...

如何彻底卸载删除oracle数据库

 windows下如何彻底删除Oracle 软件环境: 1、Windows 2000+ORACLE 8.1.7 ,oracle 10g2、ORACLE安装路径为:C:\ORACLE实现方...

java解析JSON 数组数据 实例

 public  static void main (String args[]){  String sJson ="[{'acceptTim...

使用Myeclipse 8.5开发基于JAX-WS的Web service实例

 本文为Web service 开发入门篇,主要介绍在Myeclipse 8.5环境下开发Web service的服务程序和客户端程序的基本流程。 在Weblogic 11g...

freemarker 判断日期变量为空处理 及InvalidReferenceException异常处理

at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:98);InvalidR...

是谁动了我的座位

是谁动了我的座位

女孩一上火车,见自己的座位上坐着一男士。她核对自己的票,客气地说:“先生,您坐错位置了吧?” 男士拿出票嚷嚷着:“看清楚点,这是我的座,你瞎了?” 女孩仔细看了他的票,不再做声,默...

评论列表

新闻头条
新闻头条
5年前 (2021-05-12)

文章不错支持一下

新闻头条
新闻头条
5年前 (2021-05-12)

文章不错支持一下

发表评论

访客

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