Postgres UUID JDBC funktioniert nicht

Die neuesten Java JDBC-Treiber für postgres geben an, UUIDs nativ zu unterstützen. Arbeiten gegen Postgres 9.2 (Mac).

In der Tat kann ich, wenn ein PreparedStatement verwendet wird, den Treibercode schrittweise durchgehen und sogar die spezielle Funktion 'setUuid' in AbstractJdbc3gStatement.java durchgehen. Nach allen Angaben sollte es "nur funktionieren".

Es funktioniert jedoch nicht. Die Datenbank wirft einen Fehler zurück, den ich so erhalte:

Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: uuid = bytea
  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
  Position: 139
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157) ~[postgresql-9.2-1002.jdbc4.jar:na]

Ja, in der Tat, setUuid im JDBC-Treiber sendet das als bytea:

private void setUuid(int parameterIndex, UUID uuid) throws SQLException {
        if (connection.binaryTransferSend(Oid.UUID)) {
            byte[] val = new byte[16];
            ByteConverter.int8(val, 0, uuid.getMostSignificantBits());
            ByteConverter.int8(val, 8, uuid.getLeastSignificantBits());
            bindBytes(parameterIndex, val, Oid.UUID);
        } else {
            bindLiteral(parameterIndex, uuid.toString(), Oid.UUID);
        }
    }

Was gibt? Ist in der aktuellen Datenbank eine magische Rune erforderlich, um diese Konvertierung zu segnen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage