35

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

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

2 回答 2

50

@Lob 应该为 blob 和 clob 解决问题(使用 String 作为类型)

@Column( name = "FILEIMAGE" )
@Lob(type = LobType.BLOB)
private byte[] fileimage;
于 2009-06-02T13:57:13.593 回答
3

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

  1. db 中的表,列仍然定义在 BLOB 中;将休眠映射从更改type="blob"type="binary"
  2. 在 Java getter/setter 中,使用byte[]代替BLOB( javax.sql)
  3. 更改正确获取和设置此列的 Java 代码。如果涉及 InputStram,则用于byte[]读取/写入BLOB列;如果通过 using 从 DB 读取java.sql.ResultSet,请确保使用 getBytes() 而不是getBlob()方法。
于 2014-08-22T20:33:39.640 回答