2009-06-02 1 views

ответ

43

@Lob должны сделать трюк для сгустка и CLOB (использование Струнный как тип)

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

В зависимости от версии спящего режима аннотация Лоба может не иметь параметра типа. цитата из [здесь] (https://www.hibernate.org/398.html): @Lob больше не имеет атрибутов, допускается тип lob (CLOB, BLOB). Если базовый тип - это String или массив символов, то CLOB используются. Используется «Разное» BLOB. – Fortega

+0

благодарит ребята за ваши быстрые ответы. важна ли последовательность? @Column (name = "FILEIMAGE", length = 1048576) @Lob private byte [] fileimage; – 2009-06-02 14:24:20

+0

@Fortega, ссылка, которую вы предоставили, не работает. – gtiwari333

1

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

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