當使用Hibernate查詢具有Blob(OID類型)的某些記錄Postgres 8.4時,我遇到了這個奇怪的情況。該查詢不會返回沒事,但是當我的代碼要讀取BLOB與下面的簡單代碼的內容,它得到0字節後面Postgresql 8.4用Hibernate讀取OID樣式BLOBs
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順便說一句。 – Justin 2010-09-22 19:25:41