Как использовать UUID в шаблоне JDBC?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как использовать UUID в шаблоне JDBC?

Сообщение Anonymous »

Я использую среду Spring с шаблоном JDBC, а также Postgres.

У меня есть таблицы в Postgres, которые используют UUID в качестве первичного ключа, а тип этого столбца — собственные UUID Postgres. Как сохранить эти UUID в подготовленном операторе, созданном с помощью шаблона JDBC?

Я попробовал преобразовать UUID в строку следующим образом:

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

int rowsAffected = this.jdbc.update(sql, new Object[] {
baseMaterial.getId().toString().toLowerCase(),
baseMaterial.getName(),
baseMaterial.getDescription()
});
но это приводит к этой ошибке:

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

ERROR: column "id" is of type uuid but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
А если я просто использую необработанный UUID вот так:

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

int rowsAffected = this.jdbc.update(sql, new Object[] {
baseMaterial.getId(),
baseMaterial.getName(),
baseMaterial.getDescription()
});
тогда я получаю эту ошибку:

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

org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of java.util.UUID. Use setObject() with an explicit Types value to specify the type to use.
Есть идеи? Это сводит меня с ума.

Подробнее здесь: https://stackoverflow.com/questions/470 ... c-template
Ответить

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

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

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

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

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