请教各位:我有一个文件:public List findNewsByType(int pageNo,int pageSize){
Session session = webNewsDAO.getStoreSession();
String hql = " from WebNews news where news.type = :type ORDER BY news.createDate DESC";
Query query = session.createQuery(hql).setString("type", "新闻公告");
List list = webNewsDAO.findByQuery(query, pageNo, pageSize);
return list;
}然后查不出值,结果我就改成了:public List findNewsByType(int pageNo,int pageSize){
Session session = webNewsDAO.getStoreSession();
String hql = " from WebNews news where news.type = :type1 ORDER BY news.createDate DESC";
Query query = session.createQuery(hql).setString("type1", "新闻公告");
List list = webNewsDAO.findByQuery(query, pageNo, pageSize);
return list;
}结果能查值来,我就将type改为type1,就可以了,于是感觉很奇怪,因为我原来是type的时候能查出来值,今天项目突然就查不出来了,感觉很邪门,于是我又将type1改回来:type了,结果又好了,感觉就像缓存一样,没有清空,很奇怪,所以问问有谁知道?

解决方案 »

  1.   

    补充一下,我用的是tomcat6.0,sql2000。测试时,没有重启tomcat,可以排除是其他代码出问题的原因。
      

  2.   

    应该不是class缓存的原因。可能是sql语句缓存或者是数据二级缓存的原因
      

  3.   

    估计是 session 中第一次存储的是type 可能是没有改变过吧。。跟平时jsp页面似地 你把其中的页面中内容全部删除然后在填充到其中 就可以了  挺奇怪的  顶!!!
      

  4.   

    用myeclipse经常出现这种状况,相当郁闷。不要觉得奇怪。
      

  5.   

    关键是我服务器上面打开后没看到数据(服务器是直接用tomcat启动的),然后我本机查找原因的时候,启动myeclipse后的确存在这个问题,所以我很奇怪,因为服务器和我本机在没有更改程序的情况下都出现了这个问题,然后我本机开始测试,在没有用myeclipse重启tomcat的情况下,将type改为type1,然后ctrl+B,手动构建一下,然后又能查到值了,然后再type1改回来,然后再次ctrl+B,也能查到值,最后将新生成的class文件传入服务器并重新启动服务器的tomcat,果然服务器也能查到值...