假设我有以下的Groovy类(或Java中的等价物)休眠:找到重复
class User {
Long id
String name
}
我想编写一个Hibernate查询(或HQL或条件),返回所有具有在用户至少有一个同名的其他用户。
更新
下面的语句已经提出
select min(user.id), user.name
from User user
group by user.name
having count(user.name) > 1
然而,有几个问题是:
- 实际上它并不返回用户对象,只是他们的ID和名称
- 如果有3个用户具有相同的名称,它只会返回其中一个的ID,而我希望全部3
- 它可能无法在MySQL上使用,这是我正在使用的RDBMS。
谢谢, 唐
+1我刚才说的,但你更快地到了那里。 – 2009-12-04 22:29:45
虽然这不会正常工作,但您需要min(user.id),因为user.id不包含在组中 – 2009-12-04 22:30:54
@Reverend Oops,没错。感谢您指出了这一点。 – 2009-12-04 23:07:38