我做了一个hibernate分页及添加删除更新操作的模块。在使用hibernate插入数据后,数据库表里面已经增加了该记录,但是当我多次按刷新分页页面后,这条刚插入的记录有时候出现,有时候又消失了。我程序的session是用spring的OpenSessionInViewFilter这个过滤器管理的,在插入、删除、查询时都将session清空了。但还是有这个问题。郁闷了还请各位老师帮忙指点迷津,感激不尽。

解决方案 »

  1.   

    对象有问题
    检查公有对象在被调用时是否存在重叠
    否则NEW一个
      

  2.   

    什么对象有问题啊,,能不能说明白点..我是用ajax写的界面...查询返回的是一个list
      

  3.   

    如果你用的是struts setRedirect(true)
    如果没有用,那可能就是IE的问题了
      

  4.   

    其中的一个方法:
       public List getAllPdateOrderByTimeByPage(int page, int pagesize) {
    Session session = super.getHibernateTemplate().getSessionFactory()
    .openSession();
    try {
    Query q = session
    .createQuery("from Pdate as p order by p.pdatetime desc");
    q.setFirstResult((page - 1) * pagesize);
    q.setMaxResults(pagesize);
    List ls = q.list();
    if (ls == null || ls.isEmpty())
    return null;
    return ls;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return null;
    }
    我自己写了个过滤器..在过滤器里禁用页面缓存...在jsp页面里面我也没加那个头信息
      

  5.   

    在jsp页面中实现无缓存:<head>
    <%
    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
    response.setHeader("Pragma","no-cache"); //HTTP 1.0
    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
    %>
    </head>
      

  6.   

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    在jsp里直接用这个行吗?