是否有可能获取实体的集合只是为了检索它的大小?
类似的东西:
FROM Cat c JOIN SIZE c.kittens
所以我可以使用如下查询的结果:
int sum = 0;
for(Cat c : em.createQuery("..", Cat.class).getResultList())
sum += c.getKittens().size();
是否有任何关键字或其他可能只获得大小。
为此目的获取整个集合并不是一个大问题,但我只是考虑性能改进并问自己如何做到这一点?
答案 0 :(得分:2)
您可以在JPQL中使用SQL聚合函数 对于单猫
select count(*) from Kittens k where k.cat = :cat
对于每一只猫(小猫表中的所有行)
select count(*) from Kittens k
并将其检索为
Long size = (Long) query.getSingleResult();