是的默认用使用缓存的.
调用Session.flush();, SessionFactory.evict(class) ;SessionFactory.evict(class,id)等方法能清除缓存。

解决方案 »

  1.   

    手动更新数据库,在web页面上显示不出来,估计是hibernate缓存的问题,可能你的session没有关闭,所以每次查出的结果都是在缓存中取的。hibernate有同步机制的,应该是能够辨别是否更新。
      

  2.   

    同意楼上,这种问题自己看Hibernate文档
      

  3.   

    多谢
    具体怎么使用呢?
    有没有示例?!比如myeclipse生成的dao中的代码
    public List findAll() {
    log.debug("finding all Node1 instances");
    try {
    String queryString = "from Node1";
    Query queryObject = getSession().createQuery(queryString);
    return queryObject.list();
    } catch (RuntimeException re) {
    log.error("find all failed", re);
    throw re;
    }

    }是在这里加吗?
    怎么写?
      

  4.   

    public List findAll() {
    log.debug("finding all Node1 instances");
    try {
    String queryString = "from Node1";
                                Session session =getSession();//获得session
                               List list=null;
    list = session.createQuery(queryString).list;//获得结果集
                               session.close();//关闭session
    return list;
    } catch (RuntimeException re) {
    log.error("find all failed", re);
    throw re;
    }

    }
      

  5.   

    junhe102 
    大哥!
    你把session 已经close 了,怎么从页面去得到数据阿,数据得到顺序是数据库--一级缓存---二级缓存-页面