diff --git a/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/service/SimpleServiceSupport.java b/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/service/SimpleServiceSupport.java index eae211c..09cf67c 100644 --- a/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/service/SimpleServiceSupport.java +++ b/spring-boot-service-template-jpa/src/main/java/com/lanyuanxiaoyao/service/template/jpa/service/SimpleServiceSupport.java @@ -177,6 +177,9 @@ public abstract class SimpleServiceSupport implemen */ @Override public List list(Set ids) { + if (ObjectHelper.isEmpty(ids)) { + return List.of(); + } return repository.findAll( (root, query, builder) -> { var predicate = listPredicate(root, query, builder); @@ -228,6 +231,9 @@ public abstract class SimpleServiceSupport implemen */ @SuppressWarnings({"unchecked", "rawtypes"}) private Object value(Path column, Object value) { + if (ObjectHelper.isNull(value)) { + return null; + } var javaType = column.getJavaType(); if (javaType.isEnum()) { if (value instanceof String enumName) { @@ -295,58 +301,58 @@ public abstract class SimpleServiceSupport implemen } if (ObjectHelper.isNotEmpty(queryable.getLike())) { queryable.getLike().forEach((column, value) -> { - var path = column(root, column); + var path = this.column(root, column); checkString(path, value, column); - predicates.add(builder.like(column(root, column), value)); + predicates.add(builder.like(path, value)); }); } if (ObjectHelper.isNotEmpty(queryable.getNotLike())) { queryable.getNotLike().forEach((column, value) -> { - var path = column(root, column); + var path = this.column(root, column); checkString(path, value, column); - predicates.add(builder.notLike(column(root, column), value)); + predicates.add(builder.notLike(path, value)); }); } if (ObjectHelper.isNotEmpty(queryable.getContain())) { queryable.getContain().forEach((column, value) -> { var path = this.column(root, column); checkString(path, value, column); - predicates.add(builder.like(column(root, column), "%" + value + "%")); + predicates.add(builder.like(path, "%" + value + "%")); }); } if (ObjectHelper.isNotEmpty(queryable.getNotContain())) { queryable.getNotContain().forEach((column, value) -> { var path = this.column(root, column); checkString(path, value, column); - predicates.add(builder.notLike(column(root, column), "%" + value + "%")); + predicates.add(builder.notLike(path, "%" + value + "%")); }); } if (ObjectHelper.isNotEmpty(queryable.getStartWith())) { queryable.getStartWith().forEach((column, value) -> { var path = this.column(root, column); checkString(path, value, column); - predicates.add(builder.like(column(root, column), value + "%")); + predicates.add(builder.like(path, value + "%")); }); } if (ObjectHelper.isNotEmpty(queryable.getNotStartWith())) { queryable.getNotStartWith().forEach((column, value) -> { var path = this.column(root, column); checkString(path, value, column); - predicates.add(builder.notLike(column(root, column), value + "%")); + predicates.add(builder.notLike(path, value + "%")); }); } if (ObjectHelper.isNotEmpty(queryable.getEndWith())) { queryable.getEndWith().forEach((column, value) -> { var path = this.column(root, column); checkString(path, value, column); - predicates.add(builder.like(column(root, column), "%" + value)); + predicates.add(builder.like(path, "%" + value)); }); } if (ObjectHelper.isNotEmpty(queryable.getNotEndWith())) { queryable.getNotEndWith().forEach((column, value) -> { var path = this.column(root, column); checkString(path, value, column); - predicates.add(builder.notLike(column(root, column), "%" + value)); + predicates.add(builder.notLike(path, "%" + value)); }); } if (ObjectHelper.isNotEmpty(queryable.getGreat())) { @@ -395,14 +401,14 @@ public abstract class SimpleServiceSupport implemen queryable.getBetween().forEach((column, value) -> { var path = this.>column(root, column); checkComparable(path, value, column); - predicates.add(builder.between(column(root, column), (Comparable) value(path, value.getStart()), (Comparable) value(path, value.getEnd()))); + predicates.add(builder.between(path, (Comparable) value(path, value.getStart()), (Comparable) value(path, value.getEnd()))); }); } if (ObjectHelper.isNotEmpty(queryable.getNotBetween())) { queryable.getNotBetween().forEach((column, value) -> { var path = this.>column(root, column); checkComparable(path, value, column); - predicates.add(builder.between(column(root, column), (Comparable) value(path, value.getStart()), (Comparable) value(path, value.getEnd())).not()); + predicates.add(builder.between(path, (Comparable) value(path, value.getStart()), (Comparable) value(path, value.getEnd())).not()); }); }