diff --git a/pom.xml b/pom.xml
index d28a5b4..e6fdf7c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,12 @@
fenix-spring-boot-starter
3.0.0
+
+
+ com.h2database
+ h2
+ test
+
diff --git a/src/main/java/com/lanyuanxiaoyao/service/template/controller/SimpleControllerSupport.java b/src/main/java/com/lanyuanxiaoyao/service/template/controller/SimpleControllerSupport.java
index e6118df..77dc4a1 100644
--- a/src/main/java/com/lanyuanxiaoyao/service/template/controller/SimpleControllerSupport.java
+++ b/src/main/java/com/lanyuanxiaoyao/service/template/controller/SimpleControllerSupport.java
@@ -6,7 +6,6 @@ import com.lanyuanxiaoyao.service.template.entity.SimpleEntity;
import com.lanyuanxiaoyao.service.template.helper.ObjectHelper;
import com.lanyuanxiaoyao.service.template.service.SimpleServiceSupport;
import java.util.List;
-import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@@ -22,16 +21,17 @@ public abstract class SimpleControllerSupport save(@RequestBody SAVE_ITEM item) throws Exception {
- SaveItemMapper mapper = saveItemMapper();
+ var mapper = saveItemMapper();
return GlobalResponse.responseSuccess(service.save(mapper.from(item)));
}
@GetMapping(LIST)
@Override
public GlobalCrudResponse list() throws Exception {
- ListItemMapper mapper = listItemMapper();
+ var mapper = listItemMapper();
+ var result = service.list();
return GlobalCrudResponse.responseCrudData(
- service.list()
+ result
.stream()
.map(entity -> {
try {
@@ -40,7 +40,8 @@ public abstract class SimpleControllerSupport mapper = listItemMapper();
- Page result = service.list(query);
+ var mapper = listItemMapper();
+ var result = service.list(query);
return GlobalCrudResponse.responseCrudData(
result.get()
.map(entity -> {
@@ -69,7 +70,7 @@ public abstract class SimpleControllerSupport detail(@PathVariable("id") Long id) throws Exception {
- DetailItemMapper mapper = detailItemMapper();
+ var mapper = detailItemMapper();
return GlobalResponse.responseSuccess(mapper.from(service.detailOrThrow(id)));
}
diff --git a/src/main/java/com/lanyuanxiaoyao/service/template/entity/SimpleEntity.java b/src/main/java/com/lanyuanxiaoyao/service/template/entity/SimpleEntity.java
index bfbb859..b839a2c 100644
--- a/src/main/java/com/lanyuanxiaoyao/service/template/entity/SimpleEntity.java
+++ b/src/main/java/com/lanyuanxiaoyao/service/template/entity/SimpleEntity.java
@@ -39,6 +39,6 @@ public class SimpleEntity extends IdOnlyEntity {
return "SimpleEntity{" +
"createdTime=" + createdTime +
", modifiedTime=" + modifiedTime +
- '}';
+ "} " + super.toString();
}
}
diff --git a/src/main/java/com/lanyuanxiaoyao/service/template/service/SimpleServiceSupport.java b/src/main/java/com/lanyuanxiaoyao/service/template/service/SimpleServiceSupport.java
index 346304a..ac303a3 100644
--- a/src/main/java/com/lanyuanxiaoyao/service/template/service/SimpleServiceSupport.java
+++ b/src/main/java/com/lanyuanxiaoyao/service/template/service/SimpleServiceSupport.java
@@ -14,12 +14,15 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
public abstract class SimpleServiceSupport implements SimpleService {
+ private static final Logger log = LoggerFactory.getLogger(SimpleServiceSupport.class);
private static final Integer DEFAULT_PAGE_INDEX = 1;
private static final Integer DEFAULT_PAGE_SIZE = 10;
protected final SimpleRepository repository;
@@ -31,7 +34,7 @@ public abstract class SimpleServiceSupport implemen
@Transactional(rollbackOn = Throwable.class)
@Override
public Long save(ENTITY entity) {
- if (!ObjectHelper.isNull(entity.getId())) {
+ if (ObjectHelper.isNotNull(entity.getId())) {
var id = entity.getId();
var targetEntity = repository.findById(entity.getId()).orElseThrow(() -> new IdNotFoundException(id));
BeanUtils.copyProperties(entity, targetEntity, "id", "created_time", "modified_time");
@@ -82,7 +85,7 @@ public abstract class SimpleServiceSupport implemen
if (ObjectHelper.isEmpty(column)) {
throw new IllegalArgumentException("Column cannot be blank");
}
- String[] columns = column.split("/");
+ var columns = column.split("/");
Path path = root.get(columns[0]);
for (int i = 1; i < columns.length; i++) {
path = path.get(columns[i]);
@@ -92,15 +95,20 @@ public abstract class SimpleServiceSupport implemen
@SuppressWarnings({"unchecked", "rawtypes"})
private Object value(Path column, Object value) {
- Class> javaType = column.getJavaType();
+ var javaType = column.getJavaType();
if (javaType.isEnum()) {
- return Enum.valueOf((Class) javaType, (String) value);
+ if (value instanceof String enumName) {
+ var enumType = (Class) javaType;
+ return Enum.valueOf(enumType, enumName);
+ } else {
+ throw new IllegalArgumentException("枚举类型字段需要String类型的值");
+ }
}
return value;
}
protected List queryPredicates(Query.Queryable queryable, Root root, CriteriaQuery> query, CriteriaBuilder builder) {
- List predicates = new ArrayList<>();
+ var predicates = new ArrayList();
if (ObjectHelper.isNull(queryable)) {
return predicates;
}
@@ -118,13 +126,13 @@ public abstract class SimpleServiceSupport implemen
}
if (ObjectHelper.isNotEmpty(queryable.getEqual())) {
queryable.getEqual().forEach((column, value) -> {
- Path