2010-01-12 66 views
0
最受歡迎的項目

Grails中我的簡化領域模型是這樣的:獲取Grails中

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

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

我試圖找到基於TOTALVIEWS和評級的5篇最受歡迎的文章,說的意見和75 25%的權重評分權重。

您如何在Groovy/Grails中做到這一點?

+0

的問題是,你是比較蘋果(收視率)與橙子(視圖)。你能確定你想要的那種算法嗎? – fabien7474 2010-01-13 01:21:03

回答

2

我可能會嘗試與HQL查詢,criteriaBuilder版本將是相當毛茸茸的。

我不確定你想要的加權最好的算法是什麼。但是,如果沒有這一點,你會需要這樣的:

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

那麼查詢限制爲5個結果

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