gpt4 book ai didi

.net - 您是否知道在使用 SetFirstResult 和 SetMaxResults 时如何在不使用 ResultTransformer 的情况下获得不同的结果集?

转载 作者:行者123 更新时间:2023-12-01 23:26:36 24 4
gpt4 key购买 nike

当我使用 SetFirstResult 和 SetMaxResult 时,如果查询已连接,则结果具有重复结果而不是唯一结果。

然后我将所有类型的 Distinct 助手用于标准 api。但它不会过滤整个结果集,它只会过滤分页结果。

我怎样才能克服这个问题?

谢谢

最佳答案

我找到了 hacky thing to overcome这个问题。

The only "workaround" for this that I've been able to come up with is to issue two queries from the criteria same criteria object. The first one gets the id's the second one is contrained to the ids.

//set up crtieria as you wish, including pagination myCriteria = doStuffToSetupCriteria(); myCriteria.setFirstResult((page-1)*itemsPerPage); myCriteria.setMaxResults(itemsPerPage);

//get the list if primary keys myCriteria.setProjection(Projections.distinct(Projections.property("myAllias.id")); List ids = gacc.list();

//now add the id's into the restriction myCriteria.add(Restrictions.in("myAlias.id, ids));

//clean up from the last critiera run gacc.setProjection(null); gacc.setFirstResult(0); gacc.setMaxResults(Integer.MAX_VALUE);

//your results List objects = gacc.list()

A little hacky I agree, but the only acceptable soltion I could find given this limitiation.

关于.net - 您是否知道在使用 SetFirstResult 和 SetMaxResults 时如何在不使用 ResultTransformer 的情况下获得不同的结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/545940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com