我正在使用Hibernate 4.0将jpegs存储到postgres 9.1.4中(jdbc是postgresql-9.1-901.jdbc4.jar)bytea列(byte []是hibernate实体,没有额外的类型def)。
hibernate存储过程工作正常,因为我可以使用数据库工具来转储bytea列并仍然获取jpeg。基本上是:
在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的吸气剂是
@Column(name = "image") public byte[] getImage() { return image; }
感谢任何人都可以提供帮助,谢谢!
在postgresql.conf中更改bytea_output =’escape’
或运行这个
ALTER DATABASE dbname SET bytea_output为’escape’;