大侠:
两个服务器,HibernateA, HibernateB访问同一个数据库。
用A修改数据,用B查询,B查询出来的始终是没有修改之前的结果,在网上看了很多帖子,尝试了各种方式,关session,清理
session设置查询模式,都不行,求帮助,多谢了!
查询代码如下,
this.closeSession();
Session session = this.getSession();
if(isFromDB)
  session.clear();
  Query query = session.createQuery(sql);
  if (isFromDB)
  {
session.clear();
  query.setCacheable(false);
  query.setCacheMode(CacheMode.IGNORE);
  }
return query.list();

解决方案 »

  1.   

    http://topic.csdn.net/u/20110306/16/18ab7a00-148d-469a-a0cc-9664272b1ddf.html发这么多贴干什么。
      

  2.   

    HibernateA 负责写入,HibernateB 负责查询,在B查询的时候已经确保数据库里面的数据改变了,但是查询出来就是旧的数据!!
      

  3.   

    貌似有一个hibernate的提交的函数要执行一下,commit()
      

  4.   

    两个服务器,HibernateA修改后要提交一下
    session.getTransaction().commit();
      

  5.   

    只知道有spring的框架没有 hirbernate的三层框架
      

  6.   

    你用的是Oracle数据库吧,以前好像碰到过类似问题,
    我在oracle中直接修改数据,程序查询的数据却没更新
    因为我很菜,所以我就将机子重启,然后再查就是更新的了
    但是几个客户端访问同一个数据库我还没遇到类似的问题。
    楼主,要不你先用a修改,再重启服务器,然后用b查
      

  7.   

    你用一个session不是同样可以解决么 干吗用2个