diff --git a/pom.xml b/pom.xml
index afb79cf..e4585e9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,11 @@
lombok
1.18.36
+
+ org.hibernate
+ hibernate-jpamodelgen
+ 6.6.8.Final
+
io.github.openfeign.querydsl
querydsl-apt
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 ec09fc5..3c92fe1 100644
--- a/src/main/java/com/lanyuanxiaoyao/service/template/controller/SimpleControllerSupport.java
+++ b/src/main/java/com/lanyuanxiaoyao/service/template/controller/SimpleControllerSupport.java
@@ -6,6 +6,7 @@ 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 java.util.function.Function;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -24,7 +25,7 @@ public abstract class SimpleControllerSupport save(@RequestBody SAVE_ITEM item) throws Exception {
var mapper = saveItemMapper();
- return GlobalResponse.responseSuccess(service.save(mapper.from(item)));
+ return GlobalResponse.responseSuccess(service.save(mapper.apply(item)));
}
@GetMapping(LIST)
@@ -37,7 +38,7 @@ public abstract class SimpleControllerSupport {
try {
- return mapper.from(entity);
+ return mapper.apply(entity);
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -59,7 +60,7 @@ public abstract class SimpleControllerSupport {
try {
- return mapper.from(entity);
+ return mapper.apply(entity);
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -73,7 +74,7 @@ public abstract class SimpleControllerSupport detail(@PathVariable("id") Long id) throws Exception {
var mapper = detailItemMapper();
- return GlobalResponse.responseSuccess(mapper.from(service.detailOrThrow(id)));
+ return GlobalResponse.responseSuccess(mapper.apply(service.detailOrThrow(id)));
}
@GetMapping(REMOVE)
@@ -83,21 +84,9 @@ public abstract class SimpleControllerSupport saveItemMapper();
+ protected abstract Function saveItemMapper();
- protected abstract ListItemMapper listItemMapper();
+ protected abstract Function listItemMapper();
- protected abstract DetailItemMapper detailItemMapper();
-
- public interface SaveItemMapper {
- ENTITY from(SAVE_ITEM item) throws Exception;
- }
-
- public interface ListItemMapper {
- LIST_ITEM from(ENTITY entity) throws Exception;
- }
-
- public interface DetailItemMapper {
- DETAIL_ITEM from(ENTITY entity) throws Exception;
- }
+ protected abstract Function detailItemMapper();
}
diff --git a/src/test/java/com/lanyuanxiaoyao/service/template/controller/CompanyController.java b/src/test/java/com/lanyuanxiaoyao/service/template/controller/CompanyController.java
index 4e51fa1..5923de7 100644
--- a/src/test/java/com/lanyuanxiaoyao/service/template/controller/CompanyController.java
+++ b/src/test/java/com/lanyuanxiaoyao/service/template/controller/CompanyController.java
@@ -3,6 +3,7 @@ package com.lanyuanxiaoyao.service.template.controller;
import com.lanyuanxiaoyao.service.template.entity.Company;
import com.lanyuanxiaoyao.service.template.service.CompanyService;
import java.time.LocalDateTime;
+import java.util.function.Function;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -19,7 +20,7 @@ public class CompanyController extends SimpleControllerSupport saveItemMapper() {
+ protected Function saveItemMapper() {
return item -> {
var company = new Company();
company.setId(item.getId());
@@ -30,7 +31,7 @@ public class CompanyController extends SimpleControllerSupport listItemMapper() {
+ protected Function listItemMapper() {
return company -> new ListItem(
company.getId(),
company.getName(),
@@ -39,7 +40,7 @@ public class CompanyController extends SimpleControllerSupport detailItemMapper() {
+ protected Function detailItemMapper() {
return company -> new DetailItem(
company.getId(),
company.getName(),
diff --git a/src/test/java/com/lanyuanxiaoyao/service/template/controller/EmployeeController.java b/src/test/java/com/lanyuanxiaoyao/service/template/controller/EmployeeController.java
index 0248e94..aa2c342 100644
--- a/src/test/java/com/lanyuanxiaoyao/service/template/controller/EmployeeController.java
+++ b/src/test/java/com/lanyuanxiaoyao/service/template/controller/EmployeeController.java
@@ -4,6 +4,7 @@ import com.lanyuanxiaoyao.service.template.entity.Employee;
import com.lanyuanxiaoyao.service.template.service.CompanyService;
import com.lanyuanxiaoyao.service.template.service.EmployeeService;
import java.time.LocalDateTime;
+import java.util.function.Function;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -23,7 +24,7 @@ public class EmployeeController extends SimpleControllerSupport saveItemMapper() {
+ protected Function saveItemMapper() {
return item -> {
var employee = new Employee();
employee.setId(item.getId());
@@ -36,7 +37,7 @@ public class EmployeeController extends SimpleControllerSupport listItemMapper() {
+ protected Function listItemMapper() {
return employee -> new ListItem(
employee.getId(),
employee.getName(),
@@ -46,7 +47,7 @@ public class EmployeeController extends SimpleControllerSupport detailItemMapper() {
+ protected Function detailItemMapper() {
return employee -> new DetailItem(
employee.getId(),
employee.getCompany().getId(),