私はJDBCフレームワークでSpringフレームワークを使用していますが、私もpostgresを使用しています。JDBCテンプレートでUUIDを使用するにはどうすればよいですか?
ポストグルには、UUIDを主キーとして使用するテーブルがあり、その列のタイプはpostgres 'native UUIDsです。これらのUUIDは、JDBCテンプレートを使用して作成されたプリペアドステートメントにどのように格納しますか?
私はそうのような文字列にUUIDを変換しようとしました:私はちょうどそのような生のUUIDを使用している場合
ERROR: column "id" is of type uuid but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
そして:
int rowsAffected = this.jdbc.update(sql, new Object[] {
baseMaterial.getId().toString().toLowerCase(),
baseMaterial.getName(),
baseMaterial.getDescription()
});
が、このエラーが発生していること
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.
アイデア?これは私を怒らせる。
使用しているPostgreSQL JDBCドライバのバージョンは? –
@MarkRotteveel ' 9.1-901-1.jdbc4 ' –
42.1.4に更新し、問題が解決するかどうかを確認するため、9.1-901は6歳です。 –