我正在使用Hibernate 4.0将jpegs存储到postgres 9.1.4(jdbc是postgresql-9.1-901.jdbc4.jar)bytea列(byte []是hibernate实体,没有额外的def类型)。
hibernate存储过程工作正常,因为我可以使用数据库工具转储bytea列并仍然获取jpegs。基本上是:
在managedBean中
byte [] bytes;
bytes = IOUtils.toByteArray(file.getInputstream());
entity.setImage(bytes);
此时,字节看起来像[-1,-40,-1,-32,0,16,74,70,......]
然而,问题始于我通过hibernate检索。数据似乎以某种方式被修改或损坏。
byte [] bytes;
bytes = entity.getImage();
此时,字节变为[-26,100,56,102,102,101,48,48,...]
hibernate getter是
@Column(name = "image")
public byte[] getImage() {
return image;
}
感谢是否有人可以提供帮助,谢谢!
答案 0 :(得分:3)
在postgresql.conf中更改bytea_output ='escape'
或运行此
ALTER DATABASE dbname SET bytea_output TO'escape';