gpt4 book ai didi

java - 过滤 Criteria list() 中的实体

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

我有以下设置:

其中包含 TrunkBean 的 CallRegistry bean,并且 TrunkBean 具有 Operator bean。

在我的标准中我添加:

criteria.createAlias("callRegistry.trunk", "trunk");
criteria.createAlias("trunk.operator", "op");

我需要在结果列表上使用 GSON 来填充数据表,但问题是结果列表始终返回对象内的 TrunkBean、OperatorBean 和 CallRegistry。

Valid XHTML 。resultadoQuery 是 list() 之后的查询结果troncoBean是trunk,operadora是operator,rlBean是callRegistry

我可以做什么来过滤这个并只让 CallRegistry bean 出现在结果中?这可能吗?这个问题还有其他替代方案吗?

这也正在完成(注释这两行可以解决问题):

total = (Number) criteria.setProjection(Projections.rowCount()).uniqueResult();
criteria.setProjection(null)

为什么会出现这种情况?

最佳答案

当您调用 criteria.setProjection(null); 时,ResultTransformer 已使用 PassThroughResultTransformer 配置,并且此转换器仅返回一个 array 与您声明的别名。

如果您想指定查询结果将是投影(本质上是标量),则只需设置条件的投影。给定投影中包含的各个组件决定了查询结果的整体“形状”。

例如,在您评论的第一行total = (Number) criteria.setProjection(Projections.rowCount()).uniqueResult();,结果将是您查询的行数返回,就像SELECT count(*)

有关如何使用投影的详细信息:http://docs.jboss.org/hibernate/orm/4.0/manual/en-US/html/querycriteria.html#querycriteria-projection

关于java - 过滤 Criteria list() 中的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25190288/

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