В официальном драйвере postgresql jdbc внутри метода setBlob генерируется OID для большого объекта, который должен быть установлен.
Например:
try (Connection connection = DriverManager
.getConnection("jdbc:pgsql://localhost:5432/typetestdb", "postgres", "123");
PreparedStatement stmt = connection.prepareStatement("select * from BlobTable where blob_type=?")) {
stmt.setBlob(1, new ByteArrayInputStream("someval".getBytes()));
ResultSet resultSet = stmt.executeQuery();
} catch (SQLException e) {
// Handle exception
}
Вот что мы хотим проверить, равно ли фактическое значение BLOB-объекта, но поскольку setBlob создает OID, два больших объекта будут разными. Поэтому возвращаемый набор результатов всегда будет пустым.
Поэтому кажется, что нет смысла указывать тип OID в предложении where.
Правильно ли мое понимание?