0

我有两个实体 Race 和 Player,hibernate 创建了 1 个表 race_player 作为 Race 和 Players 由 ManyToMany 关系链接。

我需要通过以下方式获取比赛列表:

  • “可用”状态
  • 超过 1 名玩家注册了这些比赛中的每一项。

我整天都在搜索以获取 hql 格式的以下查询:

从状态 = 'available' 和 idrace 的种族中选择种族名称(从 race_player 组中选择种族 ID,由具有计数(种族 ID)> 1 的种族);

问题是无法在 hql 查询中使用表 race_player。

我看不到如何获取此信息,因为仅在 race_player 表中引用了玩家数量。

谢谢您的帮助 !

4

2 回答 2

0

是的你是对的。您不能在 hql 中使用 race-player 表,因为没有直接映射到该表的类。您将拥有 Race 类中的玩家列表。尝试使用:

Select raceName from Race r where r.status = 'available' and r.playersList.size >1

希望能帮助到你。

于 2013-06-16T03:24:00.757 回答
0

感谢您的帮助,我非常接近找到解决方案。事实上,这是一个语法问题。拉曼,我试过你的解决方案,它几乎是正确的。我必须在字符串比较之间编写没有空格的请求,如下所示:

Select raceName from Race r where r.status='available' and r.playersList.size >1

是不是很疯狂?我已经失去了很多时间和一些头发,但最终很高兴让这个狗屎毫无例外地运行。再次感谢您!

于 2013-06-16T21:17:33.930 回答