【发布时间】:2015-11-10 00:11:53
【问题描述】:
我试图在一个查询中返回一组评分的平均值和计数。 在我发现浏览的示例之后,我在两个查询中相当容易地管理它。例如:
@Query("SELECT AVG(rating) from UserVideoRating where videoId=:videoId")
public double findAverageByVideoId(@Param("videoId") long videoId);
但只要我想在同一个查询中计算平均值和计数,问题就开始了。经过几个小时的实验,我发现这很有效,所以我在这里分享它。希望对你有帮助。
1) 我需要一个新的类来获得结果:
我必须在查询中引用该类:
@Query("SELECT new org.magnum.mobilecloud.video.model.AggregateResults(AVG(rating) as rating, COUNT(rating) as TotalRatings) from UserVideoRating where videoId=:videoId")
public AggregateResults findAvgRatingByVideoId(@Param("videoId") long videoId);
一个查询现在返回平均评分和评分计数
【问题讨论】:
-
这是否也会填充其他属性。
标签: java spring jpa spring-data aggregate-functions