Hibernate在hql查询中计算一对多关联?

时间:2016-08-26 02:22:00

标签: postgresql hibernate

一篇 文章 有很多

我正在尝试创建 hql 查询,该查询计算(计数(article.upvotes))文章的最多投票数量!

我尝试过的查询如下所示。我没有费心去添加我的全班 - 所有必要的代码都在下面。

class Article {
...
... 
@OneToMany(mappedBy = "article", fetch = FetchType.LAZY)
private Set<Like> articleLikes; // Contains uId who liked + articleId

select a, count(a.articleLikes) from Article a

运行此查询将产生以下错误:

exception [Request processing failed; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause

org.postgresql.util.PSQLException: ERROR: syntax error at or near "."

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

您应该选择特定的文章行。选择A,不会给出任何特定的行。

你应该得到这篇文章,然后将a.articleLikes的大小作为一个集合。

select a.articleLikes from Article a where YOUR-FINDER 

然后获得大小。

或者,

select count(*) from like where ......

答案 1 :(得分:-1)

db表中没有属性articleLikes。

的映射列

对日志使用hibernate.show_sql属性。