-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: Using OSCache and EhCache get error "Blobs are not cach
PostPosted: Sat Sep 04, 2004 7:57 am 
Senior
Senior

Joined: Wed Dec 17, 2003 4:24 am
Posts: 188
2.1.6

<hibernate-mapping>
<class name="lyo.test.bean.Trade" table="tradetest">
<cache usage="read-write"/>
<id name="trade_id" column="trade_id" type="int">
<generator class="native"/>
</id>
<property name="trade_name" column="trade_name"/>
<property name="trade_desc" column="trade_desc"/>
<property name="picture_file">
<column name="picture_file" sql-type="longblob"/>
</property>
</class>
</hibernate-mapping>


Session s=HibernateUtil.currentSession();
Transaction t=s.beginTransaction();
Integer tradeid=(Integer)s.save(trade);
log.info("Save "+tradeid+" trade complete !!! -----------------------------");
t.commit();
HibernateUtil.closeSession();



Hibernate: insert into tradetest (trade_name, trade_desc, picture_file) values (
?, ?, ?)
Hibernate: select last_insert_id()
Hibernate: select trade0_.trade_id as trade_id, trade0_.trade_name as trade_name
, trade0_.trade_desc as trade_desc, trade0_.picture_file as picture_4_ from trad
etest trade0_
java.lang.UnsupportedOperationException: Blobs are not cacheable
at net.sf.hibernate.type.BlobType.disassemble(BlobType.java:60)
at net.sf.hibernate.impl.CacheEntry.disassemble(CacheEntry.java:38)
at net.sf.hibernate.impl.CacheEntry.<init>(CacheEntry.java:29)
at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:2
214)
at net.sf.hibernate.loader.Loader.initializeEntitiesAndCollections(Loade
r.java:315)
at net.sf.hibernate.loader.Loader.doQuery(Loader.java:305)
at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections
(Loader.java:133)
at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1544)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1513)
at lyo.test.service.TradeDAOImpl.getTrades(TradeDAOImpl.java:30)
at lyo.test.servlet.test.doPost(test.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:257)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:567)
at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:567)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:184)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:567)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:567)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:20
6)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:833)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:732)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:619)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:688)
at java.lang.Thread.run(Thread.java:536)



MySQL 4.0.1 alpha

INFO:

I want to query database for display some data to client. But I will get the "Blobs are not cacheable" Exception. Does these cache can't be used when my data field is Blob? How to make it support Blob if I want to use Cache? Or which cache can support Blob? Thks!

_________________
You are not alone...


Top
 Profile  
 
 Post subject: :(
PostPosted: Sun Sep 05, 2004 6:49 am 
Senior
Senior

Joined: Wed Dec 17, 2003 4:24 am
Posts: 188
any idea?

_________________
You are not alone...


Top
 Profile  
 
 Post subject:
PostPosted: Sun Sep 05, 2004 7:14 am 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 12:50 pm
Posts: 5130
Location: Melbourne, Australia
Well, I'm not sure how to explain "blobs are not cacheable". The nature of a java.sql.Blob is that it can't be accessed outside the transaction. Makes perfect sense when you think about what it *is*. The exception message is descriptive.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.