class Account {
Long id;
}
class User {
Long id;
@ManyToOne
Account account;
}
select Account.id, NumUsers.num from Account,
(select Account.id as account_id, count(User.id) as num
from User join Account on User.account_id=Account.id
group by Account.id) as NumUsers
where Account.id=NumUsers.account_id;
select Account.id, count(User.id) from Account join
User on User.account_id=Account.id group by Account.id
但我计划为需要多个group BY的报表创建更复杂的查询。我在这里读到了关于多组的正确方法。
如何使用JPA2标准API创建查询?
不能在FROM子句中与JPA2Criteria API一起使用subquery。它确实有与JPQL相同的限制。在JPA2规范中,关于JPQL中的子查询,如下所述:
子查询可以在WHERE或HAVING子句中使用。
关于Criteria API中的子查询的说明也会得出相同的结论:
相关和非相关子查询都可以用在限制谓词中。子查询是通过创建和修改子查询对象来构造的。
子查询实例可以作为参数传递给CriteriaBuilder接口的all、any或some方法,以便在条件表达式中使用。
子查询实例可以传递给CriteriaBuilder exists方法以创建条件谓词。
如何在Hibernate中为下面给定的查询编写criteria builder api查询?batchId不是主键 从用户中选择批号('1','3') 我尝试过: 除了数据库中存在的数据外,我什么也得不到。
问题内容: 我需要使用detachedCriteria进行此SQL查询: 这个想法是从不属于用户的游戏中获取ID。我尝试了与detachedCriteria类似的10种不同方法,但得到了“未知实体:null” MappingException代码应类似于: 还设置投影以仅返回游戏的ID。 有任何想法吗?我认为Hibernate在加入没有别名的查询时会遇到一些麻烦。添加别名是可行的,但结果是完全错误
问题内容: 如何使用Criteria编写以下SQL: 问题答案: 要使用NHibernate,产生如下查询: 我们必须选择: 将子选择映射为实体。 创建原始SQL查询 第一种选择是创建一些,并将其映射为一个实体。如果我们不喜欢视图(或无法创建视图),则可以使用NHibernate映射元素element的功能 : 第二种选择是关于使用NHibernate API创建本机/原始SQL: 它没有从映射中
如何创建高效的 JPA 条件查询,以便仅当实体存在于联接表中时才选择实体列表?例如,采用以下三个表: 有问题的查询(我希望 JPA 生成什么)是: 以下条件查询将产生类似的结果,但有两个连接: 根本问题似乎是我对USER_WORKGROUP连接表使用@JoinTable注释,而不是对连接表使用单独的@Entity,所以我似乎不能在条件查询中将USER_WORGGroup用作根。 以下是实体类:
问题内容: 我有一个包含大量单词的数据库,但是我只想选择那些字符长度等于给定数字的记录(在示例情况3中): 但这不起作用…有人可以向我显示正确的查询吗? 问题答案: 抱歉,我不确定您在谈论哪个SQL平台: 在MySQL中: 在MSSQL中 LENGTH()(MySQL)或LEN()(MSSQL)函数将在您可以在WHERE子句中用作条件的列中返回字符串的长度。 编辑 我知道这确实很老,但是我想扩大答
我试图使用JPA标准编写以下查询,但我无法选择子查询中的多列。 我陷入了下面的实现过程中,无法找到如何在子查询中选择多个列。请看我在代码中的评论(第三行)。 请帮我解决这个问题。