只针对触发事务,返回友好提示

对于通过抛出异常触发事务返回友好提示信息,我就不详细解释了,记录一下

@Entity
public class SysJob implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 任务ID
     */
    @Id
    private Long jobId;

    /**
     * 任务名称
     */
    private String jobName;

    /**
     * 任务组名
     */
    private String jobGroup;

    /**
     * 调用目标字符串
     */
    private String invokeTarget;

    /**
     * cron执行表达式
     */
    private String cronExpression;

    /**
     * 计划执行错误策略(1立即执行 2执行一次 3放弃执行)
     */
    private String misfirePolicy;

    /**
     * 是否并发执行(0允许 1禁止)
     */
    private String concurrent;

    /**
     * 状态(0正常 1暂停)
     */
    private String status;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 备注信息
     */
    private String remark;


}
@RestController
@RequestMapping("/api")
@AllArgsConstructor
@Slf4j
public class TestController {

    private final ISysJobService sysJobService;

    /**
     * 发生异常,触发事务并且返回前端
     *
     * @param job
     * @return
     */
    @PostMapping
    public ResponseEntity save(@RequestBody SysJob job) {
        try {
            sysJobService.save(job);
            return ResponseEntity.ok(BizResponse.build("成功"));
        } catch (Exception ex) {
            log.info("save job failed"+ex.getMessage());
            return ResponseEntity.ok(BizResponse.build("失败"));
        }
    }
}
public interface ISysJobService {

    void save(SysJob job);

 }
@Service
@AllArgsConstructor
public class SysJobServiceImpl implements ISysJobService {

    private final SysJobMapper sysJobMapper;
    
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void save(SysJob job) {
        SysJob save = sysJobMapper.save(job);
        if (1 == 1) {
            //throw ServiceException.build(RetEnum.RET_COMM_OPERATION_FAIL);
            throw new RuntimeException("失败1111");
        }

    }
}
public interface SysJobMapper extends JpaRepository<SysJob,Long> {

 }

简单解释一下,就是通过service实现类打上 @Transactional(rollbackFor = Exception.class)  抛出异常以及对应信息,在controller进行try catch,try进行执行成功信息返回, catch 日志记录失败信息返回

posted on 2022-03-30 16:35  瞿亮  阅读(59)  评论(0编辑  收藏  举报

导航