How is a blob column annotated in Hibernate?

2019-01-17 20:05发布

How is a blob column annotated in Hibernate? So far I have a class that has:

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

2条回答
我想做一个坏孩纸
2楼-- · 2019-01-17 20:14

@Lob should do the trick for blob and clob (use String as type)

@Column( name = "FILEIMAGE" )
@Lob(type = LobType.BLOB)
private byte[] fileimage;
查看更多
叼着烟拽天下
3楼-- · 2019-01-17 20:28

I used hibernate 4 in JBoss 7 and Java 7, and found out the BLOB column in my table doesn't work like what I have for hibernate 2. Fortunately, I solved it by reading other people solutions. My solution:

  1. Table in db, the column still defined in BLOB; change the hibernate mapping from type="blob" to type="binary"
  2. In Java getter/setter, using byte[] instead of BLOB (javax.sql)
  3. Change in the Java code which get and set this column properly. If involving InputStram, use byte[] to read/write to BLOB column; If reading from DB by using java.sql.ResultSet, make sure use getBytes() instead of getBlob() method.
查看更多
登录 后发表回答