我在两个不同的盒子上使用 Hibernate 3.6,它们都从完全相同的数据库表中读取数据。两个字段的 Hibernate 注释是这样的:
@Basic(fetch=FetchType.EAGER)
@Column(name="encryptedkey",length = 256)
protected byte[] encryptedKey;
@Basic(fetch=FetchType.EAGER)
@Column(name="encryptediv",length = 256)
protected byte[] encryptedIV;
现在,当在一台机器(带有 Sun JDK 1.6.0_22-b04 的 Ubuntu Linux)上加载具有这些属性的实体时,我能够加载 256 字节的加密 key 和 IV。
但是,在另一台机器上情况并非如此(带有 Sun JVM 1.6.0_22-b04 的 Windows 2003 服务器 SP2 企业版),我为每个字段加载了 0 或 511 字节。否则,两个系统上的 Jar 文件是相同的。
数据库引擎是 PostgreSQL 9.0,我使用的是最新的 PostgreSQL JDBC 驱动程序。
任何人都知道可能出了什么问题?
最佳答案
原来JRE lib文件夹里面有一个PostgreSQL 8.4驱动。删除它解决了这个问题。
关于java - Hibernate 不一致地加载 Postgresql bytea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4335088/