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()来指定要使用的类型。
答案 0 :(得分:2)
如错误说明中所述,请使用setObject()
方法
例如:
Array sqlArray = conn.createArrayOf("text", anyArray);
pstmt.setArray(1, sqlArray);
pstmt.executeUpdate();