如何删除Hibernate Search中的所有重复结果?

时间:2014-06-12 07:50:49

标签: hibernate hibernate-search infinispan

我使用Infinispan和6.0.2一起使用Hibernate Search 4.4.0。

在开始时,我执行像

这样的查询
CacheQuery cq = SearchManager.getQuery(query,Hibernate.class).projection("id");

我使用cq.list()获取" id"。

但是现在结果的数量达到了300.000,因为设计了DB(不能改变),重复的id几乎是29,000。

我写了这个以获得" id":

for(int i=0;i<listObject.size();i++)
{
    Object[] rdf = (Object[])listObject.get(i);
    if(!result.contains((String) rdf[0])) 
       result.add((String) rdf[0]);
}

但即使我将这一部分平行,也需要很长时间。

是否有一个函数可以在Hibernate中删除查询的重复ID,就像 DISTINCT 在SQL中一样?

1 个答案:

答案 0 :(得分:-1)

setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)使用distinct。