Как аннотируется столбец BLOB-объектов в Hibernate? - PullRequest
32 голосов
/ 02 июня 2009

Как аннотируется столбец BLOB-объектов в Hibernate? Пока у меня есть класс, который имеет:

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

Ответы [ 2 ]

48 голосов
/ 02 июня 2009

@ Lob должен выполнить трюк для BLOB-объекта и Clob (используйте тип String)

@Column( name = "FILEIMAGE" )
@Lob(type = LobType.BLOB)
private byte[] fileimage;
2 голосов
/ 23 августа 2014

Я использовал hibernate 4 в JBoss 7 и Java 7 и обнаружил, что столбец BLOB в моей таблице не работает так, как у меня в hibernate 2. К счастью, я решил это, читая решения других людей. Мое решение:

  1. Таблица в дБ, столбец все еще определен в BLOB; изменить отображение гибернации с type="blob" на type="binary"
  2. В Java getter / setter, используя byte[] вместо BLOB (javax.sql)
  3. Изменение в коде Java, который правильно получает и устанавливает этот столбец. Если используется InputStram, используйте byte[] для чтения / записи в BLOB столбец; При чтении из БД с использованием java.sql.ResultSet убедитесь, что вместо метода getBlob() используется getBytes ().
...