一尘不染

Hibernate Postgres Bytea检索问题

hibernate

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

感谢任何人都可以提供帮助,谢谢!


阅读 365

收藏
2020-06-20

共1个答案

一尘不染

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

或运行这个

ALTER DATABASE dbname SET bytea_output为’escape’;

2020-06-20