2016-11-02 11 views
0

ArrayList temp2 = new ArrayList(); Postgresql Fehler beim Lang Array

In Füllung dieser Arraylist mit longs einfügen will.

Wenn ich versuche, dies in die postgresql einzufügen, benutze ich die folgenden:

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

über JDBC-Vorlage. Aber wenn ich versuche, diesen Code auszuführen, gibt es einen Fehler auf dem "ARRAY [?]". Aber wenn temp2 eine einzelne Nummer wie 1253214 ist, funktioniert es. Hat jemand eine Idee?

Mein Fehler ist:

PreparedStatementCallback; schlechte SQL-Grammatik [UPDATE pb1plnitm SET parents_pb1plnitm_unid = ARRAY [?] WHERE pb1plnitm_unid =?]; verschachtelte Ausnahme ist org.postgresql.util.PSQLException: Kann den SQL-Typ, der für eine Instanz von [Ljava.lang.Long; verwendet werden soll, nicht ableiten. Verwenden Sie setObject() mit einem expliziten Types-Wert, um den zu verwendenden Typ anzugeben.

Antwort

2

wie in Fehlerbeschreibung erwähnt, die Verwendung von setObject() Methode

Für das Beispiel machen: [?]

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

Sie müssen auch die 'Array entfernen' Teil und verwenden Sie nur 'SET parents_pb1plnitm_unid = ? ' –

+0

Danke Jungs, das hat es für mich gelöst! –

Verwandte Themen