Hibernate+Spring中的Cache is not alive异常

mifree 2008-05-28 11:29:39
Bean中如下:
private Integer id;
private Integer uid;
private User fri;
applicationContest.xml中有如下配置:
<prop key="cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.connection.release_mode">auto</prop>
XML配置:
<hibernate-mapping>
<class name="com.base.vo.Fri" table="tb_Fri" schema="dbo" catalog="test">
<cache usage="read-write"></cache>
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="uid" type="java.lang.Integer">
<column name="uid" />
</property>
<many-to-one name="fri" class="com.test.vo.User" fetch="select">
<column name="friend_id" />
</many-to-one>
</class>
</hibernate-mapping>
查询方法:
public List getFri(int id){
Session session = this.getSession();
String hql="from Fri where uid=?";
Query query = session.createQuery(hql);
query.setInteger(0, id);
List list = query.list();
return list;

}
如下代码招聘异常:
List<Fri> list = user.getFri(1006);
for(Fri fri:list){
System.out.println(fri.getFri().getName());
}
List<Fri> list2 = user.getFri(1006);//第二次从缓存中查询
for(Fri fri:list){
System.out.println(fri.getFri().getName());
}
第一次可正确查询出结果
List<Fri> list2 = user.getFri(1006);//第二次从缓存中查询 到这就抛出异常如下:
Exception in thread "main" java.lang.IllegalStateException: The org.hibernate.cache.StandardQueryCache Cache is not alive.
at net.sf.ehcache.Cache.checkStatus(Cache.java:713)
at net.sf.ehcache.Cache.get(Cache.java:355)
at org.hibernate.cache.EhCache.get(EhCache.java:110)
at org.hibernate.cache.StandardQueryCache.get(StandardQueryCache.java:76)
at org.hibernate.loader.Loader.list(Loader.java:1549)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at com.base.hibernate.impl.UserDaoImpl.getFri(UserDaoImpl.java:135)
at com.base.test.testdemo.userDemo.main(userDemo.java:212)


请问如何解决!!!
...全文
1171 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
boyingking 2008-10-29
  • 打赏
  • 举报
回复
楼主这个问题是怎么解决的?我也遇到了同样的问题!
请邮件告诉我,谢谢!

boyingking@163.com
mifree 2008-05-29
  • 打赏
  • 举报
回复
已解决
mifree 2008-05-28
  • 打赏
  • 举报
回复
等待答案.

67,538

社区成员

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

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