如何在Hibernate中注释blob列?

时间:2009-06-02 13:49:47

标签: hibernate annotations blob

如何在Hibernate中注释blob列? 到目前为止,我有一个课程:

@Column( name = "FILEIMAGE" )
private byte[ ] fileimage ;
//
public byte[ ] getFileimage ( ) { return this.fileimage ; }
public void setFilename ( String filename ) { this.filename = filename ; }

2 个答案:

答案 0 :(得分:48)

@Lob应该为blob和clob做一些技巧(使用String作为类型)

@Column( name = "FILEIMAGE" )
@Lob(type = LobType.BLOB)
private byte[] fileimage;

答案 1 :(得分:2)

我在JBoss 7和Java 7中使用了hibernate 4,发现我的表中的BLOB列不像我对hibernate 2那样工作。幸运的是,我通过阅读其他人解决方案解决了这个问题。 我的解决方案:

  1. db中的表,该列仍在BLOB中定义;将hibernate映射从type="blob"更改为type="binary"
  2. 在Java getter / setter中,使用byte[]代替BLOBjavax.sql
  3. 更改正确获取和设置此列的Java代码。如果涉及InputStram,请使用byte[]读取/写入BLOB列;如果使用java.sql.ResultSet从数据库读取,请确保使用getBytes()而不是getBlob()方法。