- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想知道在 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/
判断这2个相似的Uris实际上相同的标准方法是什么? var a = new Uri("http://sample.com/sample/"); var b = new Uri("http://sam
这个问题在这里已经有了答案: Why does "true" == true show false in JavaScript? (5 个答案) 关闭 5 年前。 可能我很困惑,但我无法理解这个愚蠢
我是一名优秀的程序员,十分优秀!