Hebernate-hql 插入一条 和 批量插入多条记录

插入一条 和 批量插入多条记录

注意关闭session的二级缓存:
hibernate.cfg.xml 中设置

 <property name="hibernate.cache.use_second_level_cache">false</property>  
//插入一条记录
    public void testcaseInsert(Testcasebpel t){
        Session session = getSession();
        Transaction tran = session.beginTransaction();
        session.save(t);    //执行
        tran.commit();  //提交
        session.close(); 
    }            
    //批量插入,此处是插入一个Map
    public void testcaseInterAll(Map<Testpathbpel, ArrayList> testCaseListMap){
        Session session = getSession();
        Transaction tran = getSession().beginTransaction();
        int i=0;
        boolean flag = false; //记录要插入的数据是否超过20条
        if(testCaseListMap.size()>20){
            flag = true;
        }
        for (Map.Entry<Testpathbpel, ArrayList> en: testCaseListMap.entrySet()) {
            ArrayList list = en.getValue();
            for (Object obj : list) {
                String str =(String)obj;
                //得到测试路径对应的id
                Testpathbpel tpath = en.getKey();
                //插入测试用例
                Testcasebpel tcase = new Testcasebpel();
                tcase.setTestpathbpel(tpath);
                tcase.setTestcase("("+str+")");
                session.save(tcase);    //执行
                i++;
                //手动将Session处的缓存数据写入数据库,并手动提交事务
                if (i % 20 == 0){ //超过20条,每20条提交1次,注意要关闭session的二级缓存
                   session.flush();
                   session.clear();
                   tran.commit();
                   tran = session.beginTransaction();
                 }
            }       
        }       
        if(flag == false) //未超过20条,最后提交1次
            tran.commit();
        session.close();
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值