尝试插入Long数组时出现Postgresql错误

时间:2016-11-02 08:04:30

标签: java sql postgresql jdbc

ArrayList temp2 = new ArrayList();

我用多头填充这个arraylist。

当我尝试将其插入postgresql时,我使用以下内容:

UPDATE pb1plnitm SET parents_pb1plnitm_unid = ARRAY[?] WHERE pb1plnitm_unid = ?", temp2, xmlForm.getFieldValueLong("uniqueid"));

使用JDBC模板。但是当我尝试运行此代码时,它会在“ARRAY [?]”上出错。但是如果temp2是一个单独的数字,如:1253214,它可以工作。有没有人有想法?

我的错误是:

  

PreparedStatementCallback;错误的SQL语法[UPDATE pb1plnitm SET parents_pb1plnitm_unid = ARRAY [?] WHERE pb1plnitm_unid =?];嵌套异常是org.postgresql.util.PSQLException:无法推断用于[Ljava.lang.Long;的实例的SQL类型。使用带有显式Types值的setObject()来指定要使用的类型。

1 个答案:

答案 0 :(得分:2)

如错误说明中所述,请使用setObject()方法

例如:

Array sqlArray = conn.createArrayOf("text", anyArray);
    pstmt.setArray(1, sqlArray);
    pstmt.executeUpdate();