2012-05-20 258 views
4

我想用hibernate和Java將圖像存儲到數據庫中。我正在使用postgres數據庫如何使用休眠將圖像存儲到postgres數據庫

我試過bytea數據類型存儲圖像和byte[]數據類型在休眠pojo。

我用下面的代碼,

CREATE TABLE photo 
(
    "photo_name" bytea 
) 
WITH (OIDS=FALSE); 
ALTER TABLE photo OWNER TO postgres; 

休眠POJO的

public class PhotoEntity { 

byte[] name; 

public byte[] getName() { 
    return name; 
} 

public void setName(byte[] name) { 
    this.name = name; 
} 

}

但它在映射的時間給出了錯誤。
請給我任何參考做到這一點。

+0

向我們展示您的真實代碼,並告訴我們確切完整的錯誤消息,其中可能包含有意義的信息,而不僅僅是「您做錯了什麼」標誌。 –

+0

嗨,先生,錯誤發生在映射時,因爲bytea不是映射與byte []或字節also.so混淆我使用哪種數據類型,而不是byte []或字節在休眠pojo。 – Dnyani

+1

您必須提供您使用的確切映射代碼以及您獲得的錯誤,以便任何人爲您提供幫助。 –

回答

5

如果您通過JPA2使用Hibernate,您可能需要@Lob註釋,但我不確定這是否適用於oidbytea字段。請參閱:

proper hibernate annotation for byte[]

還有一個Hibernate dev blog post這是相當翔實。

如果您通過XML映射或自己的註釋方言使用Hibernate,請顯示您的確切代碼和錯誤消息。

另請參閱答案here

+0

我懷疑'@ Lob'映射到'OID'的可能性Hibernate不會在通過'DELETE','UPDATE'等失去引用之前或之後'lo_unlink' LOB。 – uprego

相關問題