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';