jpa @query select group by 示例
时间: 2023-07-31 21:09:38 浏览: 203
下面是一个使用 JPA @Query 进行 SELECT GROUP BY 的示例:
假设我们有一个实体类 User,其中包含了两个属性:id 和 age。我们想要查询出每个年龄段的用户数量,可以使用以下代码:
```java
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u.age, COUNT(u) FROM User u GROUP BY u.age")
List<Object[]> countByAge();
}
```
这个方法会返回一个 List<Object[]>,其中每个 Object[] 都包含了两个元素:年龄和该年龄对应的用户数量。在查询语句中,我们使用了 GROUP BY 子句将相同年龄的用户分组,并使用 COUNT(u) 函数统计每个分组中的用户数量。
当然,你也可以将返回类型改为 List<Map<String, Object>>,这样就可以使用键值对来表示每个年龄段和对应的用户数量了。修改后的代码如下:
```java
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u.age AS age, COUNT(u) AS count FROM User u GROUP BY u.age")
List<Map<String, Object>> countByAge();
}
```
在这个查询语句中,我们使用了 AS 关键字来指定返回结果中的字段名,这样就可以在返回的 Map 中使用相应的键名了。
阅读全文