gpt4 book ai didi

java - 使用 CriteriaBuilder 的 JPA 计数(*)。如何使用 CriteriaBuilder 检索 count(*) 列

转载 作者:行者123 更新时间:2023-12-02 10:37:15 26 4
gpt4 key购买 nike

我对 CriteriaBuilder API 有疑问:

我想计算一列的结果,并返回该计数的结果以及该列的不同值的列表。

|      Table_fruit       |     count(Table_fruit)    |
|------------------------|---------------------------|
| apple | (5) |
| orange | (20) |
| banana | (400) |

所以我想创建一个查询来执行以下 SQL 语句:

select distinct COLUMN_NAME_1, count(COLUMN_NAME_1)
from TABLE_NAME
where COLUMN_NAME_2= 'value'
group by COLUMN_NAME_1;
    CriteriaBuilder cb = getCriteriaBuilder();
CriteriaQuery<Fruit> cq = cb.createQuery(Fruit.class);

Root<TABLE_NAME> root = cq.from(Fruit.class);

List<Predicate> predicates = new ArrayList<>();
predicates.add(cb.equal(root.get("COLUMN_NAME_2"), value));
cq.where(predicates.toArray(new Predicate[predicates.size()]));

// how to select the COUNT(*) from the table here?


cq.select(root.get("COLUMN_NAME_1")).distinct(true);

cq.groupBy(root.get("COLUMN_NAME_1"));

所以我的问题是:如何从 Java 的查询中检索两个值

最佳答案

试试这个

cq.multiselect(root.get("COLUMN_NAME_1"), cb.count(root.get("COLUMN_NAME_1"));
// add your predicates here
cq.groupBy(root.get("COLUMN_NAME_1"));

关于java - 使用 CriteriaBuilder 的 JPA 计数(*)。如何使用 CriteriaBuilder 检索 count(*) 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53186819/

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