Java 字节[]在数据库中出错

Java 字节[]在数据库中出错,java,hibernate,postgresql,Java,Hibernate,Postgresql,我有一个SWT/Hibernate/Postgresql应用程序,我想在我的数据库中添加一个图像作为byte[]并显示它 这里是在bean中加载图像的相关代码。好的,它工作正常 InputStream is = new FileInputStream(file); long length = file.length(); if (length > Integer.MAX_VALUE) { is.close(); return false; } byte[] image =

我有一个SWT/Hibernate/Postgresql应用程序,我想在我的数据库中添加一个图像作为byte[]并显示它

这里是在bean中加载图像的相关代码。好的,它工作正常

InputStream is = new FileInputStream(file);
long length = file.length();
if (length > Integer.MAX_VALUE) {
    is.close();
    return false;
}
byte[] image = new byte[(int)length];
int offset = 0;
int numRead = 0;
while (offset < image.length && (numRead=is.read(image, offset, image.length-offset)) >= 0) {
    offset += numRead;
}
if (offset < image.length) {
    result = false;
}
is.close();

当我在数据库中创建记录(这是可行的)并立即使用代码在SWT应用程序中显示图像时(因此字节数组实际上是由上述代码创建的),它工作正常并显示图像。但是,当我运行应用程序并从数据库中检索记录时,图像是不可读的。我在创建和检索数据库时记录了字节数组的内容,但它们完全不同。原因可能是什么?

嗯,我觉得自己很愚蠢。为了记录在案,我使用了一个8.4页的驱动程序和一个9.1页的数据库…

好吧,我已经查找过类似的问题,但没有看到这个问题:可能是
<property name="image" type="byte[]"/>
CREATE TABLE ...
(
  ...
  image bytea,
  ...
)