Postgres UUID JDBC не работаетJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Postgres UUID JDBC не работает

Сообщение Anonymous »

Последние версии драйверов Java JDBC для postgres утверждают, что изначально поддерживают UUID; работаю с Postgres 9.2 (mac).

Действительно, когда используется ReadedStatement, я могу пошагово выполнить код драйвера и даже пройти
специализированную функцию setUuid в AbstractJdbc3gStatement.java. По всем признакам это должно «просто работать».

Однако это не работает. База данных выдает ошибку, которую я получаю так:

Код: Выделить всё

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]
Да, действительно, setUuid в драйвере JDBC отправляет это как байт:

Код: Выделить всё

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);
}
}
Что это дает?
Требуется ли в реальной базе данных какая-нибудь магическая руна, чтобы благословить это обращение?

Подробнее здесь: https://stackoverflow.com/questions/179 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»