我在 grails 中的简化域模型是这样的:
Article {
Integer totalViews
static hasMany = [
ratings: Rating
]
}
Rating {
Integer value // 1 to 5
User user
}
我试图根据总浏览量和评分找到 5 篇最受欢迎的文章,例如浏览量权重为 25%,评分权重为 75%。
你会如何在 Groovy/Grails 中做到这一点?
最佳答案
我可能会尝试使用 HQL 查询,criteriaBuilder 版本会非常复杂。
我不确定您想要的权重的最佳算法是什么。但如果没有这个,你需要类似的东西:
from Article a order by avg(a.ratings.value) desc, a.totalViews desc
然后将查询限制为 5 个结果
Article.executeQuery('from Article...', max:5)
关于java - 获取 Grails 中最受欢迎的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2051311/