Java -Typ in JDBS -Vorbereitungen für PostgreSQL ltree [] (Array von Ltree -Elementen)
Posted: 03 Mar 2025, 22:52
Ich habe eine von JDBC erstellte Anweisung, die einen Parameter von LTree [] enthält, dem hierarchischen baumartigen Datentyp in Postgres. Leistung ist kritisch. Also verwende ich vorbereitete Aussagen. Ich möchte die Abfrage programmgesteuert nicht konstruieren, daher möchte ich die Liste der Primärschlüssel übergeben () als Parameter.PreparedStatement myStatement = connection.prepareStatement(
"""
SELECT path
FROM my_table
WHERE path IN ( ? )
""");
< /code>
Der Code, in dem ich versuche, den Parameter zu bevölkern: < /p>
ArrayList listWithQuotes = new ArrayList();
listWithQuotes.add("A.B.C");
listWithQuotes.add("A.B");
Array array = connection.createArrayOf("ltree[]",listWithQuotes.toArray() );
currStatement.setArray(1,array);
ResultSet rs = currStatement.executeQuery();
< /code>
Hier ist die Fehlermeldung, die ich erhalten habe: < /p>
java.lang.RuntimeException: java.lang.runtimexception: org.postgresql.util.psqLexception: Der server -Array -Typ, der nicht den Namen für bereitgestellte Namen liefert.>
Code: Select all
ltree[]
"""
SELECT path
FROM my_table
WHERE path IN ( ? )
""");
< /code>
Der Code, in dem ich versuche, den Parameter zu bevölkern: < /p>
ArrayList listWithQuotes = new ArrayList();
listWithQuotes.add("A.B.C");
listWithQuotes.add("A.B");
Array array = connection.createArrayOf("ltree[]",listWithQuotes.toArray() );
currStatement.setArray(1,array);
ResultSet rs = currStatement.executeQuery();
< /code>
Hier ist die Fehlermeldung, die ich erhalten habe: < /p>
java.lang.RuntimeException: java.lang.runtimexception: org.postgresql.util.psqLexception: Der server -Array -Typ, der nicht den Namen für bereitgestellte Namen liefert.>