Jeecg-boot 在线表单一对多

Jeecg-boot 在线表单一对多

主表附表建立:http://doc.jeecg.com/1273889  可查看官方文档
 


 

目录

Jeecg-boot 在线表单一对多

文章目录

前言

一、问题描述

二、解决方案

1.设置保存时附表的外键内容(在主表类的接口现实类中(xxxxServiceImpl)

2.修改附表接口

总结


前言

建立主表与附表外键,新建数据时 附表外键默认为主表的id 

 


提示:以下是本篇文章正文内容,下面案例可供参考

一、问题描述

附表设置外键字段为主表的某个字段,自动生成代码时,默认为主表id: 新增数据时,附表保存的外键内容自动保存为主表的ID, 而不是 设置 的orderCode 

Jeecg-boot 在线表单一对多_第1张图片

 主表接口实现类中设置附表的外键内容Jeecg-boot 在线表单一对多_第2张图片

二、解决方案

1.设置保存时附表的外键内容(在主表类的接口现实类中(xxxxServiceImpl

代码如下(示例):

package org.jeecg.modules.zhzy.service.impl;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import org.jeecg.modules.zhzy.entity.ZgTraditionalMedicines;//zhzy: 自定义的包
import org.jeecg.modules.zhzy.entity.ZgTraditionalMedicinesPrescription;
import org.jeecg.modules.zhzy.mapper.ZgTraditionalMedicinesMapper;
import org.jeecg.modules.zhzy.mapper.ZgTraditionalMedicinesPrescriptionMapper;
import org.jeecg.modules.zhzy.service.IZgTraditionalMedicinesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

/**
 * @Description: 中药
 * @Author: jeecg-boot
 * @Date: 2020-09-30
 * @Version: V1.0
 */
@Service
public class ZgTraditionalMedicinesServiceImpl extends ServiceImpl
        implements IZgTraditionalMedicinesService {

    @Autowired
    private ZgTraditionalMedicinesMapper zgTraditionalMedicinesMapper;
    @Autowired
    private ZgTraditionalMedicinesPrescriptionMapper zgTraditionalMedicinesPrescriptionMapper;

    @Override
    @Transactional
    public void saveMain(ZgTraditionalMedicines zgTraditionalMedicines,
            List zgTraditionalMedicinesPrescriptionList) {
        zgTraditionalMedicinesMapper.insert(zgTraditionalMedicines);
        if (zgTraditionalMedicinesPrescriptionList != null && zgTraditionalMedicinesPrescriptionList.size() > 0) {
            for (ZgTraditionalMedicinesPrescription entity : zgTraditionalMedicinesPrescriptionList) {
                // 外键设置
                entity.setOrderId(zgTraditionalMedicines.getOrderCode());
                zgTraditionalMedicinesPrescriptionMapper.insert(entity);
            }
        }
    }

    @Override
    @Transactional
    public void updateMain(ZgTraditionalMedicines zgTraditionalMedicines,
            List zgTraditionalMedicinesPrescriptionList) {
        zgTraditionalMedicinesMapper.updateById(zgTraditionalMedicines);

        // 1.先删除子表数据
        zgTraditionalMedicinesPrescriptionMapper.deleteByMainId(zgTraditionalMedicines.getId());

        // 2.子表数据重新插入
        if (zgTraditionalMedicinesPrescriptionList != null && zgTraditionalMedicinesPrescriptionList.size() > 0) {
            for (ZgTraditionalMedicinesPrescription entity : zgTraditionalMedicinesPrescriptionList) {
                // 外键设置
                entity.setOrderId(zgTraditionalMedicines.getOrderCode());
                zgTraditionalMedicinesPrescriptionMapper.insert(entity);
            }
        }
    }

  

}

2.修改附表接口

代码如下(示例):

//service目录下: 附表接口
public interface IZgTraditionalMedicinesPrescriptionService extends IService {

    public List selectByMainId(String mainId);//在线生成代码自动生成,可以删除也可保留(默认保留)

    /*
     * 通过主表的OrderCode
     */
    public List selectByMainOrderCode(String orderCode);//新建的接口
}

在Mapper 中新增查询方法
package org.jeecg.modules.zhzy.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.zhzy.entity.ZgTraditionalMedicinesPrescription;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * @Description: 配方
 * @Author: jeecg-boot
 * @Date: 2020-09-30
 * @Version: V1.0
 */
public interface ZgTraditionalMedicinesPrescriptionMapper extends BaseMapper {

    public boolean deleteByMainId(@Param("mainId") String mainId);

    public List selectByMainId(@Param("mainId") String mainId);

    public List selectByMainOrderCode(@Param("orderCode") String orderCode);//新增的查询方法
}


在相应的XMl 新增查询方法




    
        DELETE 
        FROM  zg_traditional_medicines_prescription 
        WHERE
             order_id = #{mainId}     
    
    
        
    





实现接口:


package org.jeecg.modules.zhzy.service.impl;

import java.util.List;

import org.jeecg.modules.zhzy.entity.ZgTraditionalMedicinesPrescription;
import org.jeecg.modules.zhzy.mapper.ZgTraditionalMedicinesPrescriptionMapper;
import org.jeecg.modules.zhzy.service.IZgTraditionalMedicinesPrescriptionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

/**
 * @Description: 配方
 * @Author: jeecg-boot
 * @Date: 2020-09-30
 * @Version: V1.0
 */
@Service
public class ZgTraditionalMedicinesPrescriptionServiceImpl
        extends ServiceImpl
        implements IZgTraditionalMedicinesPrescriptionService {

    @Autowired
    private ZgTraditionalMedicinesPrescriptionMapper zgTraditionalMedicinesPrescriptionMapper;

    @Override
    public List selectByMainId(String mainId) {
        return zgTraditionalMedicinesPrescriptionMapper.selectByMainId(mainId);
    }

    @Override
    public List selectByMainOrderCode(String orderCode) {//实现新增的接口
        return zgTraditionalMedicinesPrescriptionMapper.selectByMainOrderCode(orderCode);//调用xxxMapper定义的查询方法
    }

}


在主表的Controller 增加接口
/**
     * 通过OrderCode查询
     *
     * @param OrderCode
     * @return
     */
    @AutoLog(value = "配方通过主表OrderCode查询")
    @ApiOperation(value = "配方主表OrderCode查询", notes = "配方-通主表OrderCode查询")
    @GetMapping(value = "/queryZgTraditionalMedicinesPrescriptionListByMainOrderOrderCode")
    public Result queryZgTraditionalMedicinesPrescriptionListByMainOrderOrderCode(
            @RequestParam(name = "orderCode", required = true) String orderCode) {
        List zgTraditionalMedicinesPrescriptionList = zgTraditionalMedicinesPrescriptionService
                .selectByMainOrderCode(orderCode);
        return Result.ok(zgTraditionalMedicinesPrescriptionList);
    }

前端调用

前端效果:

Jeecg-boot 在线表单一对多_第3张图片


总结

主要修改外键保存

你可能感兴趣的:(jeecg-boot,mybatis,java)