Hibernate / HQL - 如何从数据库中返回所有重复项?

时间:2010-02-12 09:30:29

标签: java hibernate orm hql

我有一个包含一些重复项的表(定义为某些特定列包含相同的值)。什么是让所有人回升的最好方法?我需要所有重复项,因此 分组 有计数()> 1 * 不是我想去的方式。

因此,如果我的表包含以下数据

1 - foo - bar - something
2 - foo - bar - another thing
3 - foo - bar - something
4 - foo - bar - something else

我想回来:

1 - foo - bar - something
3 - foo - bar - something

非常感谢你的帮助!

的Stefan

1 个答案:

答案 0 :(得分:1)

  1. 获取SELECT * FROM ..
  2. 中的所有项目(List
  3. 创建新的HashBag,在构造函数
  4. 中传递列表
  5. 仅获取getCount()超过1的项目。
  6. 如果您已将对象映射到表,如果所有属性都相同,则equals()方法返回true,这将起作用。


    另一种方法是使用subselect。 subselect是您的GROUP BY + COUNT()查询,外部查询与子查询的结果进行比较。