我使用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中一样?
答案 0 :(得分:-1)
setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)使用distinct。