gpt4 book ai didi

java - JPA 规范等同于 ResultTransformer.DISTINCT_ROOT_ENTITY?

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:20 27 4
gpt4 key购买 nike

我想知道在 JPA 规范中是否有等效的 ResultTransformer.DISTINCT_ROOT_ENTITY 可使用?现在,我正在尝试实现搜索功能,我必须为此使用 JPA 规范(我不允许使用 CriteriaQuery 或其他替代方法)。

我必须在搜索查询中执行 JOIN,因为实体之间存在一对多关系。

所以,现在,我正在这样做:

String type = "admin";
SpecificationBuilder sb = SpecificationBuilder.getInstance();
Specification<WebContentImpl> spec = new Specification<WebContentImpl>() {
@Override
public Predicate toPredicate(Root<WebContentImpl> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
return cb.equal(root.join("users", JoinType.LEFT).get("type"), type);
}
};
sb.addSpecification(spec);

如您所见,我可以包含一个 JOIN。多个用户映射到单个 Web 内容项。但是,例如,当有 3 个用户映射到 1 个 Web 内容项时,Web 内容项应该只显示 1 次,但实际显示了 3 次。我过去遇到过这个问题,当时标志 ResultTransformer.DISTINCT_ROOT_ENTITY 帮助我解决了问题,但我现在无法使用该功能。

当然,我可以实现自己的解决方案来省去 double ,但这对性能来说会很糟糕。我已经尝试更改 JoinType,但结果总是一样。

有没有人有一些提示可以帮助我? :-)

提前致谢!

亲切的问候,K

最佳答案

关于java - JPA 规范等同于 ResultTransformer.DISTINCT_ROOT_ENTITY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23539103/

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