2012-05-20 113 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

相关问题