增加子表编辑的另一种实现例子

This commit is contained in:
thinkgem
2023-03-16 19:20:48 +08:00
parent ee3adf6fee
commit 3b04eff399
5 changed files with 507 additions and 23 deletions

View File

@@ -38,19 +38,25 @@ public class TestDataService extends CrudService<TestDataDao, TestData> {
*/
@Override
public TestData get(TestData testData) {
TestData entity = super.get(testData);
if (entity != null){
TestDataChild testDataChild = new TestDataChild(entity);
return super.get(testData);
}
/**
* 加载子表数据
*/
public TestData loadChildData(TestData testData) {
if (testData != null && !testData.getIsNewRecord()){
TestDataChild testDataChild = new TestDataChild(testData);
testDataChild.setStatus(TestDataChild.STATUS_NORMAL);
entity.setTestDataChildList(testDataChildDao.findList(testDataChild));
testData.setTestDataChildList(testDataChildDao.findList(testDataChild));
}
return entity;
return testData;
}
/**
* 查询分页数据
* @param page 分页对象
* @param testData
* @param testData page 分页对象
* @return
*/
@Override
@@ -146,7 +152,7 @@ public class TestDataService extends CrudService<TestDataDao, TestData> {
/**
* 事务测试,若 Child 报错,则回滚
*/
@Transactional//(propagation = Propagation.NOT_SUPPORTED)
@Transactional//(propagation=Propagation.NOT_SUPPORTED)
public void transTest(TestData testData) {
testData.setTestInput("transTest");
testData.setTestTextarea(IdGen.randomBase62(5));

View File

@@ -4,11 +4,13 @@
*/
package com.jeesite.modules.test.web;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jeesite.common.config.Global;
import com.jeesite.common.entity.Page;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.test.entity.TestData;
import com.jeesite.modules.test.entity.TestDataChild;
import com.jeesite.modules.test.service.TestDataService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -19,12 +21,9 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jeesite.common.config.Global;
import com.jeesite.common.entity.Page;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.test.entity.TestData;
import com.jeesite.modules.test.entity.TestDataChild;
import com.jeesite.modules.test.service.TestDataService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 测试数据Controller
@@ -83,9 +82,10 @@ public class TestDataController extends BaseController {
*/
@RequiresPermissions("test:testData:view")
@RequestMapping(value = "form")
public String form(TestData testData, Model model) {
public String form(TestData testData, String flag, Model model) {
testDataService.loadChildData(testData);
model.addAttribute("testData", testData);
return "modules/test/testDataForm";
return "modules/test/testDataForm"+ StringUtils.defaultString(flag, "");
}
/**