java - Postgresql 8.4 使用 Hibernate 读取 OID 样式的 BLOB

标签 java hibernate postgresql

我在使用 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)。 有人可以提示我如何解决这个问题吗? 谢谢

彼得

最佳答案

看起来您可能已经发现了这个错误: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4876

关于java - Postgresql 8.4 使用 Hibernate 读取 OID 样式的 BLOB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3025322/

相关文章:

java - Spring:外部和内部属性文件

java - 使用 SAX 解析器解析包含特殊字符 "/"的值给出错误的输出

postgresql - 如何比较postgres中的两个字段?

postgresql - 使用查询结果中的所有参数在 PostgreSQL 中调用函数

java - 如何修复错误方法_jspService(HttpServletRequest,HttpServletResponse)的代码超出了Jboss的65535字节限制

java - 为什么我无法通过 Servlet 初始化 Service Registry(Hibernate)?

java - Hibernate 不可变实体和脏检查机制 REST Web 应用程序

java - 将货币值存储为 Doubles 但使用 BigDecimal 计算值

macos - 如何检查 PostgreSQL 服务器 Mac OS X 的状态

java - 为按钮背景组合 TextureRegions