当前位置: 首页 > 知识库问答 >
问题:

JPA 2标准API,儿童计数标准

赫连永怡
2023-03-14

我正在尝试实现以下内容:

SELECT c.*, asCount.assetCount
FROM Company c
LEFT JOIN (
    SELECT company_id, COUNT(*) as assetCount 
    FROM Asset 
    GROUP BY company_id) asCount
ON c.id = asCount.company_id

问:我如何用JPA 2标准实现这个?

我可以单独获得asCount结果,但不知道如何将其加入公司

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Tuple> cq = builder.createTupleQuery();
Root<Asset> asset = cq.from(Asset.class);
cq.multiselect(asset.<Company>get("company").<Long>get("id").alias("id"), builder.count(asset).alias("assetCount"));
cq.groupBy( asset.<Company>get("company").<Long>get("id") );

Query query = em.createQuery(cq);
List<Tuple> results = query.getResultList();

提前感谢。

PS
1。有一个类似的线程使用HiberNate应用编程接口询问子级计数:HiberNate子级计数标准
2。另一个描述该主题的有用线程: JPA CriteriaBuilder——按一对多关系中关联实体的数量排序

共有1个答案

尹庆
2023-03-14

好的,我自己找到了解决办法。希望它能帮助其他人:)

CriteriaQuery<Tuple> cq = builder.createTupleQuery();
Root<Company> company = cq.from(Company.class);
Join<Company, Asset> secondTable = company.join("assets", JoinType.LEFT);
cq.multiselect(company.<String>get("id").alias("id"), builder.count(secondTable).alias("assetCount"));
cq.groupBy( company.<Long>get("id") );

Query query = em.createQuery(cq);
List<Tuple> results = query.getResultList();
 类似资料:
  • 我有以下数据库模型: 在Spring数据规范中,当B.status为'X'时,我想返回A的实例。JPQL代码如下: 这些是模型类: Spring规范中的JPA标准是什么?

  • Werkzeug 的设计意图是一个实用的工具集而不是一个框架。得益于从低级API 中分离出来 的面向用户友好的 API,Werkzeug 可以很简单的扩展另一个系统。 Request 和 Response 对象(又名”wrappers”) 提供的函数也可以来实 现一个小的功能。 例子 这个例子实现一个小的 Hello World 应用。显示用户输入的名字: from werkzeug.utils

  • JSSE API标准,可在 javax.net 和 javax.net.ssl 包找到,提供如下: 安全套接字和服务器套接字 非阻塞引擎用于生产和消费 SSL/TLS 数据流(SSLEngine) 工厂创建套接字、服务器套接字、SSL套接字,和SSL服务器套接字。通过使用套接字工厂,可以封装套接字创建和配置行为 一个类代表一个安全套接字上下文作为工厂用于安全套接字工厂和引擎 密钥和信任管理器接口(

  • 我希望一个标签的所有子项没有标签之间的空白。但是美丽的汤和也返回标记之间的空白。 这张照片是: 同 我想要的是: 有没有办法告诉BeautifulSoup只返回标签而忽略空白? 文档对此主题没有多大帮助。示例中的html在标记之间不包含任何空格。 事实上,去除html标记之间的所有空白可以解决我的问题: 使用这个html,我得到的标签之间没有空格,因为标签之间没有空格。但是我希望使用Beautif

  • 问题内容: 问题: 1)如果我从Hibernate 4.x升级到Hibernate 5.x,我仍然可以使用“旧”条件查询还是仅使用新的 Typed JPA2条件查询?旧的是否已弃用,还是可以同时使用? 2)我是否正确理解新的类型化标准会迫使我为我拥有的 每个 实体类创建第二个类,从而使类的数量重复?我应该手动创建这些类吗?如果没有,怎么办?兰特:必须重复上课似乎很奇怪,所以我一定会对它有所误解?那