首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UNION to JPA查询

UNION to JPA查询
EN

Stack Overflow用户
提问于 2013-09-23 11:55:37
回答 8查看 104.9K关注 0票数 44

是否可以在JPA中查询"UNION“,甚至在”标准生成器“中查询?

我在找例子,但到目前为止我还没有得到结果。

有人有如何使用它的例子吗?

还是使用本机sql?

EN

Stack Overflow用户

发布于 2019-03-22 15:03:01

JPA没有直接的联合,我所做的是构建两个规范。

代码语言:javascript
复制
Specification<Task> specification = Specification.where(null);
Specification<Task> specification2 = Specification.where(null;

它们属于单个表,但返回不同的值。

代码语言:javascript
复制
specification = specification.and((root, criteriaQuery, criteriaBuilder) -> criteriaBuilder.equal(criteriaBuilder.function(MONTH, Integer.class, root.get("deliveryExpirationDate")), month));
        specification2 = specification2.and((root, criteriaQuery, criteriaBuilder) -> criteriaBuilder.lessThan(criteriaBuilder.function(MONTH, Integer.class, root.get("deliveryExpirationDate")), month))
            .and((root, criteriaQuery, criteriaBuilder) -> criteriaBuilder.equal(root.get("enable"), true));

对于这个例子,它是一个任务表,在第一个规范中,我需要启用和禁用当前月份的任务,而在第二个规范中,我只需要启用前几个月的任务。

代码语言:javascript
复制
Specification<Task> specificationFullJoin = Specification.where(specification).or(specification2);

Esto es muyútil para la lista de tareas devueltas tenga paginación。

代码语言:javascript
复制
taskRepository.findAll(specificationFullJoin, pageable).map(TaskResponse::new); //Here you can continue adding filters, sort or search.

这对我有很大的帮助,我希望这是他们想要的,或者是为他们服务的东西。

票数 0
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18958614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档