获取Grails中最受欢迎的商品

时间:2010-01-12 18:20:34

标签: java grails groovy

我在grails中的简化域模型是这样的:

Article {
    Integer totalViews
    static hasMany = [
        ratings: Rating
    ]
}

Rating {
    Integer value // 1 to 5
    User user
}

我试图找到基于totalViews和评级的5个最受欢迎的文章,比如25%的观看权重和75%的评分权重。

你会如何在Groovy / Grails中做到这一点?

1 个答案:

答案 0 :(得分:2)

我可能会尝试使用HQL查询,criteriaBuilder版本会非常多毛。

我不确定你想要的加权最好的算法是什么。但如果没有这个,你需要这样的东西:

from Article a order by avg(a.ratings.value) desc, a.totalViews desc

然后将查询限制为5个结果

Article.executeQuery('from Article...', max:5)