gpt4 book ai didi

java - 将 JPA/Ebean 查询作为整数列表返回

转载 作者:行者123 更新时间:2023-11-29 08:59:29 25 4
gpt4 key购买 nike

目前我的实现是这样的:

ArrayList<Reports> listOfRep = new ArrayList<Reports>();
ArrayList<Integer> listOfId = new ArrayList<Integer>();

listOfRep.addAll(Ebean.find(Reports.class)
.where()
.eq("Name", "someName")
.findList());

for (Reports r : listOfRep) {
listOfId.add(r.id);
}

现在我正在执行两个循环来获取 ID(整数)列表。我的报告模型有一个字段 int id。我想做类似的事情

listOfId.addAll(Ebean.find(Reports.class)
.select("id")
.where()
.eq("Name", "someName")
.findList());

该查询将返回整数列表而不是报告列表。有没有办法将我的原始代码重构为更简单的代码?

最佳答案

你可以用投影试试。像这样:

CriteriaBuilder cb = em.getCriteriaBuilder();
// for an Integer result :
CriteriaQuery<Integer> cq = cb.createQuery(Integer.class);
Root<Reports> reports = cq.from(Reports.class);
CompoundSelection<Integer> projection = cb.construct(Integer.class, reports.get("id"));

cq.where(cb.equal(reports.get("Name"), "someName")).select(projection);
List<Integer> resultList = em.createQuery(cq).getResultList();

关于java - 将 JPA/Ebean 查询作为整数列表返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18340428/

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