benzhou 发表于 2016-10-23 03:58:10

手动向mysql数据库插入数据,hibernate查询出来没有新插入数据,如何解决?(原创)

  数据库:mysql
  取数据:hibernate :
     public List  findAll() {
        Query query = session.createQuery("from user");
        return query.list();
    }
  我使用mysql的界面管理工具,向其中插入一条数据,在不重新启动服务器的时候,刷新页面,新插入的数据不显示。
  使用hibernate的add方法添加进去的,刷新页面可以显示。
  
  
  尝试:
  1.将hibernate的配置文件中加入二级缓存关闭的配置
  2.在hibernate里的add、findAll的方法里加入session.flush();session.evit(obj);session.clear();(清除一级缓存)
  3.使用dos界面,进入mysql,insert 数据,然后commit
  
  
  都不管用,必须重新启动tomcat,新数据才出来。
  
  
  最后,偶然在iteye上看到个帖子:
  解决了我好几天纠结的问题:
  在调用findAll方法的action里加入事务提交:
public String init() {
    List users= service.listAllUser(session);
  session.getTransaction().commit();
  }
  
  这样,使用mysql管理界面手动插入的数据,刷新页面的时候,就可以显示出来了。
页: [1]
查看完整版本: 手动向mysql数据库插入数据,hibernate查询出来没有新插入数据,如何解决?(原创)