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

如何使用spring数据jpa检索聚合函数查询

阎鹏
2023-03-14

我使用的是Spring数据jpa 1.2,但无论如何我都找不到这样的聚合查询结果。

select count(v), date(v.createTimestamp) from UserEntity v
    group by date(v.createTimestamp)

与原生JPA完美配合

@Entity()
public class UserEntity {

   @Id
   private long id;
   .
   .
   @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
   private Timestamp createTimestamp;

}

任何我的JPA存储库都是

public interface UserRepository extends JpaRepository<UserEntity, Long>, 
      JpaSpecificationExecutor<UserEntity> {
}

那么,我如何才能对Spring数据进行聚合查询呢?我在文档中完全找不到任何内容

共有3个答案

诸葛康胜
2023-03-14

您还可以使用@NativeQuery选项

邹海超
2023-03-14

Spring数据中目前不支持“countBy”:

支持CountBy查询方法

Spring Data JPA是否有任何方法使用方法名解析来计算实体?

訾安邦
2023-03-14

我找到了一个方法

public interface UserRepository extends JpaRepository<UserEntity, Long>, 
      JpaSpecificationExecutor<UserEntity> {

      @Query(value = "select count(v), date(v.createTimestamp) from UserEntity v group by date(v.createTimestamp)", 
             countQuery = "select count(1) from (select count(1) from UserEntity v group by date(v.createTimestamp)) z")
      public List<Object[]> findCountPerDay();
}

通过这种方式,我们可以获得聚合数据和实际计数(聚合记录)

 类似资料:
  • 问题内容: 我是ORM的新手,我需要一些帮助来理解一些东西。 假设我有以下标准SQL查询: 我想在JPA中使用。 我有一个与测试实体一对多关系的检验实体。(检查有很多测试)我尝试用JPQL编写此代码: 1)如何编写COUNT子句?我必须将计数应用于测试表中的元素,但testList是一个集合,所以我不能做这样的事情 2)假设解析为1,将返回哪种类型的对象。绝对不是检查对象…如何使用结果? 问题答案

  • 问题内容: 我正在使用以下聚合: 这有效,但是我只会得到无用的聚合-我也必须与… 相处 问题答案: 如果您想获取该ID的类别名称, 因此,子聚合(嵌套在上面)为您提供了id的categoryName。

  • 我尝试使用下面的elasticsearch查询来处理Spring数据。目的是为字段返回唯一的结果。就像与SQL数据库进行比较一样。 我将该字段配置为关键字,它使查询在api中完美运行,如下所示: 我的问题是,当我尝试使用StringQuery运行时,相同的查询在Spring数据中不起作用,我得到以下错误。我猜它使用不同的api来运行查询。 我尝试过使用类型来实现相同的结果,没有重复和没有对象加载,

  • 有人能帮我把这个mongoDB聚合转换成Spring数据mongo吗? 我试图在每个邀请函文件中获得未提醒与会者的电子邮件列表。 让它在mongo shell中运行,但需要在Spring data mongo中运行。 我的shell查询 ) 正如你们所看到的,这是我提出的,它在管道的项目和团队运作中并没有像预期的那样发挥作用。下面给出了生成的查询。 聚合对象创建 它创建以下查询 聚合对象生成的查询

  • 问题内容: 我想要做的是计算子查询返回的行数,本质上如下: 这是我的错误信息: 为什么这不起作用?如果select仅返回一堆具有过滤条件的行,为什么我不能计算行数或返回的行数? 我正在计算拥有的不同员工的数量。按分组。 这是有关我的数据库的一些结构信息,作为查询的一部分。 谢谢! 问题答案: 试试这个 或这个

  • 如何使用规范编写下面查询 当我们使用Specification时,即使在multiselect中提到了count(),也没有选择count()。 为什么JPA中的multiselect方法不起作用