suliuyes 2011-10-09 15:39
浏览 231
已采纳

用hibernate如何批量删改操作?(内详)

我看了下文档,批量删改的话 ,有两种:
一种是批量操作的实体们有共同部分,就可以用HQL语句来一次性执行。
二种是实体数据没有共同部分,就用for循环,注意清理session缓存。

请问第二种情况,我觉得用for循环感觉比较别扭而且也担心性能问题。 是否还有解决办法?

  • 写回答

2条回答 默认 最新

  • AngelAndAngel 2011-10-09 15:53
    关注

    第二种方法没太大问题的,即使性能可能有问题也不是for引起的。而且不必每次循环都清理缓存,可以每添加n个清理一次,下面是示例代码,你看下。
    [code="java"]
    Session session=HibernateUtil.currentSession();
    Transatcion tx=session.beginTransaction();
    for(int i=0;i<10000;i++)
    {
    Student st=new Student();
    st.setName(“feifei”);
    session.save(st);
    // 以每50个数据作为一个处理单元
    if(i%50==0)

    {
    // 只是将Hibernate缓存中的数据提交到数据库,保持与数据库数据的同步
    session.flush();

    // 清除内部缓存的全部数据,及时释放出占用的内存
    session.clear();

    }
    }
    tx.commit();

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画