【发布时间】:2019-11-28 16:18:30
【问题描述】:
假设我有一个包含用户和类型的所有帐户的表。 我想创建一个 Jpa Repository 方法,该方法返回每种类型用户(USER、ADMIN、MASTER)的总数数组。
这是我在 JpaRepository 中的做法:
@Query(value="SELECT (SELECT COUNT(*) FROM account WHERE account_role='USER'),"
+ "(SELECT COUNT(*) FROM account WHERE account_role='ADMIN'),"
+ "(SELECT COUNT(*) FROM account WHERE account_role='MASTER')"
+ "FROM account LIMIT 1",
nativeQuery=true)
public List<Integer> getTotalAccountType();
代码执行得很好,但结果不是我所期望的。
结果:
[2]
预期结果:[2,10,30]
知道如何将嵌套 SQL 与 JPQL 一起使用吗?提前谢谢!
【问题讨论】:
-
旁注 - 可能更好的查询:
SELECT account_role, COUNT(*) FROM account WHERE account_role IN ('USER', 'ADMIN', 'MASTER') GROUP BY account_role(尽管您需要从您的方法返回不同的类型)
标签: java sql hibernate spring-data-jpa jpql