Hibernate postgres проблема с поиском байтов

Я использую Hibernate 4.0 для хранения jpegs в postgres 9.1.4 (jdbc - это postgresql-9.1-901.jdbc4.jar) столбца bytea (byte[] - это объект hibernate, без дополнительного типа def).

Процесс сохранения в спящем режиме работает нормально, потому что я могу использовать инструменты базы данных, чтобы вывести столбец bytea и получить jpegs. Это в основном:

В управляемом Бине

byte [] bytes;
bytes = IOUtils.toByteArray(file.getInputstream());
entity.setImage(bytes);

На этом этапе байты выглядят как [-1, -40, -1, -32, 0, 16, 74, 70, ...]

Однако проблема начинается с того, что я получаю через спящий режим. Данные кажутся измененными или поврежденными как-то.

byte [] bytes;
bytes = entity.getImage();

В этот момент байты становятся [-26, 100, 56, 102, 102, 101, 48, 48,...]

Спящий геттер

@Column(name = "image")
public byte[] getImage() {
    return image;
}

Спасибо, если кто-то может помочь, спасибо!

1 ответ

Решение

Изменить bytea_output='escape' в postgresql.conf

или запустить это

ALTER DATABASE dbname SET bytea_output TO 'escape';

Другие вопросы по тегам