0

am:nの関係にある2つのテーブルがあります。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

それを試してみてください

SELECT g, count(g.users) FROM Group g JOIN FETCH g.users as u
于 2012-08-30T08:43:32.900 に答える
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 に答える