springboot-es 单条数据的修改与批量数据修改

一.单条:通过主键id,直接对修改字段进行操作即可,不用再附带已有值和修改字段一起修改。

 public void updateInfo(){
        String id="344364895434851641";
        OrderDetailEntity od= orderService.queryOrderDetailEntityById(id);
        if(od==null){
            System.out.println("od为null");

        }
        System.out.println("od "+od.getOrderNo()+" id:"+od.getId());
       // od.setMiAmount(new BigDecimal(0));
        //od.setPayMethod(7);
       // od.setPayMoney(new BigDecimal(1.5));
        //341224197805034914
        od.setIdCard("341224197805034914");
        od.setRegisterTime(new Date());
        od.setAnalysisFlag(1);
        orderService.add(od);

    }

   /**
     * 添加
     * @param oe
     */
   public void add(OrderDetailEntity oe){
       ordersSearchRepository.save(oe);
   }

二。批量修改:使用主键更新,携带修改的字段即可

 public void batchUpdataData(){
  List<OrderDetailEntity> orderList=new ArrayList<OrderDetailEntity>();
       OrderDetailEntity ot1=new OrderDetailEntity();
       ot1.setOrderNo("344363949099720272");
       ot1.setIdCard("210204199303306485");
       ot1.setRegisterTime(new Date());
       ot1.setAnalysisFlag(1);
       orderList.add(ot1);
       OrderDetailEntity ot2=new OrderDetailEntity();
       ot2.setOrderNo("344371376360840270");
       ot2.setIdCard("500222199801010320");
       ot2.setRegisterTime(new Date());
       ot2.setAnalysisFlag(1);
       orderList.add(ot2);
       OrderDetailEntity ot3=new OrderDetailEntity();
       ot3.setOrderNo("344337535029511645");
       ot3.setIdCard("210202199505250720");//344337535029511645
       ot3.setRegisterTime(new Date());
       ot3.setAnalysisFlag(1);
       orderList.add(ot3);

       orderService.bulkUpdateData(orderList);

   }

 /**
     * 批量修改
     * @param orderNoList
     */
    @Override
    public void bulkUpdateData(List<OrderDetailEntity> orderNoList) {
        List<UpdateQuery> updateList = new ArrayList<UpdateQuery>();
        for(OrderDetailEntity orderDetailEntity:orderNoList){
            IndexRequest indexRequest = new IndexRequest();
            Map<String,Object> map=new HashMap<String,Object>();
            map.put("idCard",orderDetailEntity.getIdCard());
            map.put("registerTime",new Date().getTime());
            map.put("analysisFlag", orderDetailEntity.getAnalysisFlag());
            System.out.println("orderno:"+orderDetailEntity.getOrderNo());
            //这里只能用map,不能json串
            indexRequest.source(map);
            UpdateQuery updateQuery = new UpdateQueryBuilder().withId(orderDetailEntity.getOrderNo())
                    .withClass(OrderDetailEntity.class).withIndexRequest(indexRequest).build();
            updateList.add(updateQuery);
        }
        // when
        elasticsearchTemplate.bulkUpdate(updateList);
        elasticsearchTemplate.refresh(OrderDetailEntity.class);
        System.out.println("修改完成!!!");
    }
    private   <T> Map<String,Object> beanToMap(T bean){
        Map<String, Object> map = new HashMap<String,Object>();;
        if (null != bean){
            BeanMap beanMap = BeanMap.create(bean);
            for (Object key : beanMap.keySet()){
                map.put(key+"",beanMap.get(key));
            }
        }
        return map;
    }

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值