hibernate中Blob,Clob字段类型,二级缓存的问题

Q088 2006-04-10 04:30:25
我用的是hibernate 3.1.3版本,数据库SQLServer2000,二级缓存EhCache
问题是这样的,在我的pojo实体类中有一个Blob字段
这个实体类我开启了二级缓存,read-write
当dynamic-insert="false" dynamic-update="false"这两个属性为false时
insert,出现异常
java.lang.UnsupportedOperationException: Blobs are not cacheable
...略
当我把dynamic-insert="true" dynamic-update="true"这两个属性设为true时
insert成功,图片也成功的写入了数据库里

但是读取时还是出现异常,
java.lang.UnsupportedOperationException: Blobs are not cacheable

是不是有Blob或Clob这种大型的字段在,实体类就不能采用二级缓存策略了
按书里说的一种办法,把Blob分离出来,单独做一个子类,在父类使用缓存,但是我觉得这个办法不好
为了一个字段就另写一个类和一个hbm.xml映射文件是不是太小题大作了一点

请问各位牛人老大,有没有什么更好的解决办法,或者是有另外的配置方法
小弟我初学hibernate,请各为老大多多指教
...全文
572 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainxue 2006-09-22
  • 打赏
  • 举报
回复
请问我用存Clob字段的时候提示:
Active Spring transaction synchronization or active JTA transaction with 'jtaTransactionManager' on LocalSessionFactoryBean required


怎么解决?
我的表没有Clob字段的时候Hibernate存储都没问题。数据库时DB2,请大哥赐教!小弟感激不尽。。。。。。
Saro 2006-04-19
  • 打赏
  • 举报
回复
把Blob分离出来,单独做一个子类
-----------------------
这种做法应该是最好的,因为是many-to-one关联,可以指定lazy load。
或许也可以为blob写一个UserType,在方法assemble,及disassemble中指定cache策略。
huafong 2006-04-19
  • 打赏
  • 举报
回复
设置大对象的二级缓存好像要用hibernate.property中的一个配置项来设置虚拟机策略,具体是那个不记得了,hibernate官方网站的介绍上提到过
Q088 2006-04-10
  • 打赏
  • 举报
回复
...
Q088 2006-04-10
  • 打赏
  • 举报
回复
顶.....
Q088 2006-04-10
  • 打赏
  • 举报
回复
没人来呀

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧