是否可以在JPA中查询"UNION“,甚至在”标准生成器“中查询?
我在找例子,但到目前为止我还没有得到结果。
有人有如何使用它的例子吗?
还是使用本机sql?
发布于 2019-03-22 15:03:01
JPA没有直接的联合,我所做的是构建两个规范。
Specification<Task> specification = Specification.where(null);
Specification<Task> specification2 = Specification.where(null;它们属于单个表,但返回不同的值。
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));对于这个例子,它是一个任务表,在第一个规范中,我需要启用和禁用当前月份的任务,而在第二个规范中,我只需要启用前几个月的任务。
Specification<Task> specificationFullJoin = Specification.where(specification).or(specification2);Esto es muyútil para la lista de tareas devueltas tenga paginación。
taskRepository.findAll(specificationFullJoin, pageable).map(TaskResponse::new); //Here you can continue adding filters, sort or search.这对我有很大的帮助,我希望这是他们想要的,或者是为他们服务的东西。
https://stackoverflow.com/questions/18958614
复制相似问题