0

我有两个处于 am:n 关系的表。我想通过 SQL (HQL) 语句计算组中的所有用户(以获取用户最多的组)

public class User{
private String name;

@ManyToMany
private Set<Usergroup> groups;
}

public class Usergroup{
private String name;

@ManyToMany
private Set<User> users;
}

我写了一个HQL,但我总是得到一个异常:你的SQL语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ') 附近使用的正确语法

这是我的 HQL:

@NamedQuery(name = "Group.countUsers", query = "SELECT g, count(g.users) FROM Group g JOIN FETCH g.users u")

我究竟做错了什么?

4

2 回答 2

0

我找到了解决方案......它是

@NamedQuery(name = "Group.countUsers", query = "SELECT g, count(u) FROM Group g JOIN FETCH g.users u GROUP BY g")
于 2012-08-31T13:17:18.060 回答
0

试试看

SELECT g, count(g.users) FROM Group g JOIN FETCH g.users as u
于 2012-08-30T08:43:32.900 回答