使用groovy脚本从数据库中获取数据后,如何根据条件删除记录?

2020-09-04 21:51发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

请尽快提供解决方案。

关于Pankaj

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

请尽快提供解决方案。

关于Pankaj

付费偷看设置
发送
3条回答
bbpeas
1楼 · 2020-09-04 22:14.采纳回答

我假设您已获取需要删除的记录列表。 使用以下示例常规逻辑

  ResultSet结果集= <<您的数据库数据列表>>
  List  cartModelList;
  while(resultset.next()){
   System.out.println(resultset.getString(" pk"));
   if(<<您的删除条件>>){
          最后的CartModel deleteCart = modelService.get(PK.parse(String.valueOf(resultset.getString(" pk")。trim()))); //删除购物车的示例
          cartModelList.add(deleteCart);
  
   }
   }
   modelService.removeAll(cartModelList);
  

我已显示了删除购物车列表的示例。 用您的需求替换它,并放置必要的异常处理块。

SAP小黑
2楼-- · 2020-09-04 22:03

注意: 需要启用提交模式以反映db中的更改,否则更改将不会持久保存在db中。

谢谢

me_for_i
3楼-- · 2020-09-04 22:17

只需使用Groovy的 each 方法来迭代从灵活搜索返回的集合。

您可以使用灵活的搜索 where 子句进行过滤,也可以使用 findAll

来过滤集合本身

例如 这将删除具有以X开头的代码并获得批准的产品

  flexibleSearchService.search(/从{product}中选择{pk},其中{code}如'X%'/)。结果
    .findAll {it.approvalStatus == de.hybris.platform.catalog.enums.ArticleApprovalStatus.APPROVED}
    .each {modelService.remove}

  

it 是闭包的隐式参数,在这种情况下,是集合中的当前产品。

一周热门 更多>