This commit is contained in:
2024-10-12 09:43:39 +08:00
parent 7a8558df05
commit 6828ed658c
2 changed files with 39 additions and 21 deletions

View File

@@ -139,8 +139,6 @@ public class CommonQuery {
}
}
for (Class supportType : supportTypes) {
if (Comparable.class.isAssignableFrom(supportType)) {
@@ -372,16 +370,29 @@ public class CommonQuery {
y ->
ObjectUtils.defaultIfNull(y.not, false)
? getPredicate(
root,
criteriaBuilder,
y,
conversionService).not()
: getPredicate(
root,
criteriaBuilder,
y,
conversionService)
)
.not()
: y.includeNull != null
&& y.includeNull
? criteriaBuilder.or(
criteriaBuilder
.isNull(
parseKey(
root,
y.key)),
getPredicate(
root,
criteriaBuilder,
y,
conversionService))
: getPredicate(
root,
criteriaBuilder,
y,
conversionService))
.toArray(Predicate[]::new);
orPredicates.add(criteriaBuilder.and(predicates));
@@ -717,5 +728,6 @@ public class CommonQuery {
private String min;
private String max;
private String type;
private Boolean includeNull;
}
}

View File

@@ -335,21 +335,27 @@ where 二次过磅时间>='%s' and 二次过磅时间<='%s'
Specification specification = query.specification(conversionService);
Specification and = specification.and(
new Specification() {
@Override
public Predicate toPredicate(
Root root,
CriteriaQuery query,
CriteriaBuilder criteriaBuilder) {
return criteriaBuilder.or(
criteriaBuilder.isNull(root.get("invalid")),
criteriaBuilder.isFalse(root.get("invalid")));
}
});
Page<WeightDeviceDataEntity> page =
repository.findAll(
specification.and(
new Specification() {
@Override
public Predicate toPredicate(
Root root,
CriteriaQuery query,
CriteriaBuilder criteriaBuilder) {
return criteriaBuilder.or(
criteriaBuilder.isNull(root.get("invalid")),
criteriaBuilder.isFalse(root.get("invalid")));
}
}),
and.or(new Specification() {
@Override
public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) {
return criteriaBuilder.isNull(root.get("ecgbTime"));
}
}),
PageRequest.of(
query.getPageNo(),
query.getPageSize(),