java.lang.UnsupportedOperationException: большие двоичные объекты не кэшируются

После добавления поля java.sql.Blob к одному из моих объектов менеджер постоянства гибернации теперь выдает исключение Blobs are not cacheable.

Любая идея, как решить эту проблему, кроме отключения кеша. Я пытался сделать поле переходным, но, конечно, безуспешно.

Кстати, я использую последнюю версию Spring Framework.


person MatBanik    schedule 14.10.2011    source источник
comment
Можете ли вы предоставить более подробную информацию? Исключение? БД? Вы пробовали отключить кеширование?   -  person James DW    schedule 14.10.2011


Ответы (1)


У вас есть 2 варианта.

  1. если вам не нужно кэшировать соответствующие данные большого двоичного объекта, переместите их во вторичный объект гибернации, который не кэшируется
  2. если вы хотите, чтобы данные кэшировались (в этом случае я бы предположил, что они имеют ограниченный размер), вы можете использовать тип гибернации, который отображает данные в/из байта [] («двоичный», я полагаю) - http://www.mkyong.com/hibernate/hibernate-save-image-into-database/
person jtahlborn    schedule 14.10.2011
comment
@MattBanik - если вы пойдете по двоичному пути, просто убедитесь, что кто-то не пытается сохранить изображение размером 2 ГБ. - person jtahlborn; 14.10.2011