Подтвердить что ты не робот

Как колонка blob аннотируется в Hibernate?

Как колонка blob аннотируется в Hibernate? До сих пор у меня есть класс, который имеет:

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

Ответ 1

@Lob должен делать трюк для blob и clob (используйте String as type)

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

Ответ 2

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

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