hibernate3.0是如何实现批量更新的?

解决方案 »

  1.   

    批量更新也无非是循环么。
    但是Hibernate的API就没有批量更新的方法,只能单一的进行update。
    这样就会存在问题,如果你更新的数据记录大的话,比如好几万。这么会产生多少条更新语句呀。
    我想Hibernate的效率肯定不行。
    要是更新数据量大或者频繁的话,直接用JDBC吧
      

  2.   

    要想批量更新,就要每更新20条左右的数据就要清理一下缓存
    List list;
    int cnt=0;
    for(int i=0;i<list.size();i++){
       User user=(User)list.get(i);
       session.update(user);
      if(cnt%20==0){
        session.flush();
        session.clare();
      }
    }
      

  3.   

    不过改用JDBC连接池来处理的话效果更佳
      

  4.   

    即使clare()及时清理了缓存,但不管有没有使用这个方法,倘若更新的数据量很大的话,Hibernate都必须执行很多条update语句,频繁的访问数据库,这该是多影响效率啊。