【问题标题】:How to get value of multiple fields in one Go using Java?如何使用 Java 在一次 Go 中获取多个字段的值?
【发布时间】:2022-01-23 05:11:41
【问题描述】:

我的要求是从存储库中获取特定值的计数并将其存储在响应类中,对于我每次查询的每个字段,

如果它是第一次迭代设置在 countofData1 如果它的第二个然后设置在 countofdata2 和进一步

同样走得更远, 如何有效地设置每种情况下的值

Response.java

private int  countOfData1;
private int  countOfData2;
private int  countOfDat3;

origin 的值为 = ["data1","data2","data3"]

public static List<Response> value(String id,List<String> origin){
    for (String s : origin) {
         Response response  = new Response();
           List<String> countOfData1 = repo.findCountbyData1(id ,s);
           response.setCountOfData1(countOfData1,size());
    }
}

【问题讨论】:

  • 好吧,你可以通过修复缩进等来改进代码:-)

标签: java spring spring-boot spring-data-jpa


【解决方案1】:

无需对存储库做出任何假设并假设您指的是涉及并发的解决方案,如果您使用的是 Java 8+,则可以使用并行流(或者如果您不想要并发,则可以使用顺序 Java 流)。

List<Response> listOfResponse = origin.parallelStream().map(s -> {
    Response response = new Response();
    response.setCountOfData1(repo.findCountbyData1(id ,s),size();
    response.setCountOfData2(repo.findCountbyData2(id ,s),size();
    response.setCountOfData3(repo.findCountbyData3(id ,s),size();
    return response;
}).collect(Collectors.toList());
return listOfResponse;

This Spring doc has examples for both uses

【讨论】:

  • 但是如果我们要设置 countofData2 和 countofdata3 怎么办,我们如何在那儿使用这个块
  • 我正在研究您提供的示例。你能更明确地说明你想用 countOfData2 和 countOfData3 做什么吗?目前尚不清楚这些变量的用途。
  • 问题已编辑,请检查
  • 我更新了答案,但我认为您需要检查您的原始代码逻辑。在您的原始代码中,您正在执行repo.findCountbyData1(id ,"data1");repo.findCountbyData1(id ,"data2");repo.findCountbyData1(id ,"data3");,我不确定这是否有意义。无论如何,这无关紧要,因为原始问题已得到解答,而问题与代码的正确性无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 2015-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
相关资源
最近更新 更多