Другой вариант - изменить запрос, чтобы преобразовать строковое значение обратно в целое число.(Псевдокод ниже, возможно, не скомпилируется / не сработает для вашей базы данных)
String sql = " SELECT * "
+ " FROM some_table "
+ " WHERE CAST(some_table.int_column_stored_as_string AS INTEGER) = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInteger(1, myIntValue);
Одна из проблем заключается в том, что, поскольку он запускает функцию в каждой строке, база данных не сможет использовать какие-либо индексы, определенные для some_table.int_column_stored_as_string
.