java – Hibernate HQL计数不一样不行?

前端之家收集整理的这篇文章主要介绍了java – Hibernate HQL计数不一样不行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下类:
  1. class User {
  2. hasMany = [ratings: Rating]
  3. }
  4.  
  5. class Item {
  6. hasMany = [ratings: Rating]
  7. }
  8.  
  9. class Rating {
  10. belongsTo = [user: User,item: Item]
  11. }

我想计算在一个项目上评分的不同用户.

以下内容不起作用:

  1. select count(distinct(r.user)) from Rating as r
  2. where r.item=:item
  3. group by r.user

如何修改HQL查询以使其正常工作?

解决方法

您的查询应按预期工作,对您使用distinct的方式进行小幅修改
  1. select count(distinct r.user) from Rating as r
  2. where r.item = :item group by r.user

执行此查询的其他更长时间的方法是使用用户和连接:

  1. select count(distinct u) from User as u
  2. inner join u.ratings as r where r.item = :item
  3. group by r.user

猜你在找的Java相关文章