保存主表信息以及关联信息

例如:

保存部门信息【部门中会存在多个员工信息】

思路:

Dto接收参数(同时接收员工信息),中间可以转Do,可以用Po封装详情

实现:

Controller:

@PostMapping("/add")
public ApiResult<Boolean> addDeptInfo(@Volid @ResquestBody DeptInfoAddDto deptInfoAddDto){
     deptInfoService.addDeptInfo(deptInfoAddDto);
     return ApiResult.ok();
}


@PostMapping("/update")
public ApiResult<Boolean> updateDeptInfo(@Volid @ResquestBody DeptInfoUpdateDto deptInfoupdateDto){
     deptInfoService.updateDeptInfo(deptInfoUpdateDto);
     return ApiResult.ok();
}

@PostMapping("/delete/{id}")
public ApiResult<Boolean> deleteDeptInfo(@PathVariable("id") Long id){
     deptInfoService.deleteDeptInfo(id);
     return ApiResult.ok();
}

其中:DeptInfoAddDto / DeptInfoupdateDto 

@Data
public class DeptInfoAddDto {
    private Long id;
    private String deptName;
    private String deptCode;
    ...
    private List<EmpInfoAddDto> empInfoList;
}


@Data
public class DeptInfoUpdateDto {
    private Long id;
    private String deptName;
    private String deptCode;
    ...
    private List<EmpInfoUpdateDto> empInfoList;
}

Service:

@Transactional(rollbackFor = Exception.class)
public Long addDeptInfo(DeptInfoAddDto deptInfoAddDto){
     //将Dto转为Do
     DeptInfoDo deptInfoDo = DeptInfoConvert.INSTANCE.deptInfoAddDto2deptInfoDo(deptInfoAddDto);
     return deptInfoDomain.save(deptInfoDo);
}

@Transactional(rollbackFor = Exception.class)
public void updateDeptInfo(DeptInfoUpdateDto deptInfoUpdateDto){
     //将Dto转为Do
     DeptInfoDo deptInfoDo = DeptInfoConvert.INSTANCE.deptInfoUpdateDto2deptInfoDo(deptInfoUpdateDto);
     deptInfoDomain.update(deptInfoDo);
}

@Transactional(rollbackFor = Exception.class)
public void deleteDeptInfo(Long id){
     deptInfoDomain.delete(id);
}

其中DeptInfoDo :

@Data
@Table("数据库表名")
public class DeptInfoDo extends DeptInfo{
    private List<EmpInfo> empInfoList;
}

Domain:

public Long save(DeptInfoDo deptInfoDo){
     //将Do转为实体
     DeptInfo deptInfo = DeptInfoConvert.INSTANCE.deptInfoDo2deptInfo(deptInfoAddDto);
     deptInfoMapper.save(deptInfo);
     return deptInfo.getId();
}

public void update(DeptInfoDo deptInfoDo){
     //将Do转为实体
     DeptInfo deptInfo = DeptInfoConvert.INSTANCE.deptInfoDo2deptInfo(deptInfoAddDto);
     deptInfoMapper.updateById(deptInfo);
}

public void delete(Long id){
     deptInfoMapper.delete(id);
}

详情信息时,可以封装Po:

@Data
@Table("数据库表名")
public class DeptInfoPo extends DeptInfo{
    private List<EmpInfo> empInfoList;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值