【发布时间】:2010-06-11 18:36:06
【问题描述】:
在使用 Hibernate 查询 Postgres 8.4 以获取带有 Blob(OID 类型)的一些记录时,我遇到了这种奇怪的情况。查询确实可以返回,但是当我的代码想要使用下面的简单代码读取 BLOB 的内容时,它会返回 0 个字节
public static byte[] readBlob(Blob blob) throws Exception {
InputStream is = null;
try {
is = blob.getBinaryStream();
return org.apache.commons.io.IOUtils.toByteArray(is);
}
finally {
if (is != null)
try {
is.close();
}
catch(Exception e) {}
}
}
有趣的是,我之所以会出现这种行为,是因为我已经开始向表中添加多个这样的记录。 底层 JDBC 库是类型 3 (postgresq 8.4-701)。 有人可以给我一个关于如何解决这个问题的提示吗? 谢谢
彼得
【问题讨论】:
-
如果你得到 6 个字节,那么我会说你正在读取 OID,0 个字节可能意味着 OID 为空或 blobdata 实际上只有 0 个字节长。尝试休眠 3.6 顺便说一句。
标签: java hibernate postgresql