hql多对多关系,其中info包含在连接表中

时间:2013-06-15 21:36:46

标签: java many-to-many hql

我有两个实体Race和Player,而hibernate创建了一个表race_player,因为Race和Players是通过ManyToMany关系链接的。

我需要获得比赛列表:

  • 状态“可用”
  • 每场比赛都有超过1名球员注册。

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

选择种族名称 从种族 where status ='available' 和idrace(   选择raceid   来自race_player   由raceid组   有计数(raceid)> 1);

问题是表race_player不能在hql查询中使用。

我不知道如何获取此信息,因为播放器的数量仅在race_player表中引用。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

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

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

希望它有所帮助。

答案 1 :(得分:0)

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

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

Creazy不是吗?我已经失去了很多时间和一些头发,但最后很高兴让这个没有例外。再一次,谢谢!