Hibernate postgres bytea检索问题

时间:2013-07-16 03:22:02

标签: image hibernate postgresql bytea

我正在使用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;
}

感谢是否有人可以提供帮助,谢谢!

1 个答案:

答案 0 :(得分:3)

在postgresql.conf中更改bytea_output ='escape'

或运行此

ALTER DATABASE dbname SET bytea_output TO'escape';