gpt4 book ai didi

Java 8 stream.collect(Collectors.groupingBy()) 在 JPA 获取的列表/对象上使用时返回大小为 0 的映射

转载 作者:行者123 更新时间:2023-12-01 18:02:36 24 4
gpt4 key购买 nike

我有以下类结构

public enum RPAttributeStatus {
NOT_CREATED,
UPDATED
}

public class RPAttribute{
private int id;
private RPAttributeStatus status;
}


public class RP{
private int id;
private List<RPAttribute> listOfRPAttributes;
}

//with getters and setters

获得 RP 对象后,我想获得一个键为 RPAttributeStatus 的 map 该值应该是 List<RPAttribute>

我从 JPA Dao 获取对象:

RiskProfileDao riskProfileDao = new RiskProfileDao();
RiskProfile riskProfile = riskProfileDao.findById(id);

我正在尝试按如下方式获取 map :

riskProfile.getRPAttributes().stream().collect(Collectors.groupingBy(RPAttribute::getStatus));

但我总是得到尺寸为 0 的 map ,但 RP对象包含 RPAttributes 的填充列表不为空,并且有状态。

最佳答案

我无法重现。我添加了构造函数和 getter 并运行了这段代码:

    RP riskProfile = new RP(7, Arrays.asList(new RPAttribute(1, RPAttributeStatus.UPDATED), 
new RPAttribute(2, RPAttributeStatus.NOT_CREATED)));
Map<RPAttributeStatus, List<RPAttribute>> m
= riskProfile.getRPAttributes().stream().collect(Collectors.groupingBy(RPAttribute::getStatus));
System.out.println("Size " + m.size());

打印;

Size 2

在我看来,你的问题出在其他地方。

关于Java 8 stream.collect(Collectors.groupingBy()) 在 JPA 获取的列表/对象上使用时返回大小为 0 的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39636299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com