java - 计算 Hibernate JPA 中子查询返回的行数
问题描述
我想在 Hibernate JPA 中执行以下查询。
select distinct count(*)
from (
select distinct entity1.CODE as col_0_0_,
string_agg(entity2.PRODUCT_IMAGE_URL, ',') as col_1_0_,
count(entity1.CODE) as col_2_0_
from entity1
inner join entity2 on entity1.id = entity2.entity1_ID
where entity1.id = 1
group by entity1.CODE
) as cnt;
知道如何使用 Criteria API 做到这一点吗?
解决方案
您将需要以下内容:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> criteriaQuery = cb.createQuery(Long.class);
Root<Entity1> root = criteriaQuery.from(MyEntity.class);
criteriaQuery.select(criteriaBuilder.countDistinct(entityRoot.get("code")));
Long count = entityManager.createQuery(criteriaQuery).getSingleResult();
推荐阅读
- bash - 我可以在 2 个单独的终端窗口中查看进程的标准输出和标准错误吗?
- javascript - Symfony & Sonata:如何将 javascript 添加到实体管理表单?
- java - 发送带有参数的 POST 请求并读取响应
- java - lambda 不需要异常处理
- azure - 我的个人资料上有两个订阅即用即付和 Azure 订阅。有什么区别,我需要同时使用吗?
- javascript - 访问对象拥有数组内的键值
- jquery - 按 ID 选中多个复选框
- linux-device-driver - 如何在不重新启动系统的情况下将服务 USB 重置为 lsmod 中列出的串行驱动程序?
- javascript - 将可变数量的过滤条件应用于javascript数组,同时只遍历一次?
- amazon-web-services - CloudWatch 监控和通知