java - 如何获取出现次数最多的对象集?

标签 java hibernate jpa playframework

我有两个对象。

@Entity
class Person extends Model {

    ...
    @OneToOne
    Category category;
}


@Entity 
class Category extends Model {
    ...
}

我需要获取 5 个最常用的类别。我怎样才能做到这一点 ?

谢谢

编辑:解决方案

List<Object[]> c = Category.find(
    "SELECT p.categorie, count(p.id) FROM Person p " +
    "GROUP BY p.category ORDER BY count(p.category) DESC").fetch(2);

最佳答案

您的 JPQL 查询将如下所示:

SELECT p.category, COUNT(p.category)
FROM Person p
GROUP BY p.category
ORDER BY count(p.category) DESC

你也可以执行query.setMaxResults(5)。

关于java - 如何获取出现次数最多的对象集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7229768/

相关文章:

java - JdbcTemplate:以字符串形式访问 MySQL VARBINARY 字段

hibernate - Grails - 查找用户今天创建的所有帖子

java - 在 oracle Spring/JPA 中对分组行本身进行排序

java - 添加映射<String, Entity>时约束冲突合并实体

java - 如何将未选定的项目从列表移动到另一个列表?列表

java - Eclipse APT 编译速度变慢

java - 如何将 hibernate 关联映射从 'one to many' 更改为 'many to many'?

java - 将 Hibernate 与 H2 数据库和 joda DateTime 一起使用

java - 如何在Web应用程序中获取服务器本地驱动器路径?

hibernate - Grails createCriteria返回空条件