Я использовал спящий режим 4 в JBoss 7 и Java 7 , и выяснилось, что столбец BLOB
в моей таблице не работает, как у меня для спящего режима 2. К счастью, я решил это, читая решения других людей. Мое решение:
- Таблица в db, столбец, все еще определенный в BLOB; изменить отображение спящего режима от
type="blob"
к type="binary"
- В Java геттер/сеттер, используя
byte[]
вместо BLOB
(javax.sql
)
- Изменение в коде Java, которые получают и установить этот столбец правильно. При использовании InputStram используйте
byte[]
для чтения/записи в столбце BLOB
; Если вы читаете из БД с помощью java.sql.ResultSet
, используйте метод getBytes() вместо метода getBlob()
.
В зависимости от версии спящего режима аннотация Лоба может не иметь параметра типа. цитата из [здесь] (https://www.hibernate.org/398.html): @Lob больше не имеет атрибутов, допускается тип lob (CLOB, BLOB). Если базовый тип - это String или массив символов, то CLOB используются. Используется «Разное» BLOB. – Fortega
благодарит ребята за ваши быстрые ответы. важна ли последовательность? @Column (name = "FILEIMAGE", length = 1048576) @Lob private byte [] fileimage; – 2009-06-02 14:24:20
@Fortega, ссылка, которую вы предоставили, не работает. – gtiwari333