Postgresql, JDBC и потоковые BLOB

Я пытаюсь получить блоб из базы данных postgres, используя драйверы jdbc. Он слишком большой, чтобы его можно было сохранить в памяти, поэтому я хочу загрузить его в потоковом режиме. Я попытался использовать метод getBinaryStream в ResultSet, но оказалось, что этот метод фактически читает все это в память, так чтоработать с большими файлами

Очевидно, можно использовать метод getBlob в наборе результатов и предположительно получить входной поток из большого двоичного объекта и перейти оттуда, но именно здесь я столкнулся с моей проблемой.

PreparedStatement ps = con.prepareStatement("select data from file_data WHERE ID = ?");
ps.setLong(1,file.fileData.id)
ResultSet rs = ps.executeQuery()
if(rs.next()){
        rs.getBlob("data")

Это код, который яЯ бегу. Когда он доходит до последней строки, он выдает ошибку, которую я не могу понять ...

org.postgresql.util.PSQLException: Неверное значение для типа long: xxxxxx "

хххххх» затем содержимое файла. Вы можете себе представить, что это будет довольно долго, но не совсем.

Я застрял здесь. У кого-нибудь есть идеи о том, что происходит? Черт возьми, яЯ даже возьму альтернативные методы для потоковой передачи больших двоичных объектов в качестве загрузки.

Ответы на вопрос(2)

Ваш ответ на вопрос