1、Controller代码
@PostMapping("/add")
public RestResult add(ModelParamInputDTO modelParamDTO) {
this.isValid("modelName", modelParamDTO.getModelName());
this.isValid("drugId", modelParamDTO.getDrugId());
this.isValid("drugCode", modelParamDTO.getDrugCode());
aiModelService.addAiModel(modelParamDTO);
return ResultGenerator.genSuccessResult().setMessage("保存成功");
}
@PostMapping("/isValid")
public RestResult isValid(@RequestParam String key, String value) {
Boolean isValid = aiModelService.isValid(key, value);
if (isValid) {
return ResultGenerator.genSuccessResult();
} else {
String[] ret = {""};
VALID_MESSAGE.forEach((k, v) -> {
if (k.equals(key)) {
ret[0] = v;
}
});
throw new ServiceException(ret[0]);
}
}
2、service代码
@Override
@Transactional(rollbackFor=Exception.class)
public void addAiModel(ModelParamInputDTO modelParamDTO) {
String modelId = CoreUtils.getUUID();
AiModel aiModel = new AiModel();
BeanUtils.copyProperties(modelParamDTO, aiModel);
aiModel.setId(modelId);
aiModel.setOrgId(ORG_ID);
aiModel.setGmtCreate(new Date());
aiModel.setModelName(modelParamDTO.getDrugName());
aiModelMapper.insert(aiModel);
String s = null;
int d = s.length();
}
3、Application代码
@SpringBootApplication
@MapperScan("cn.itpower.pms.modules.**.dao")
@EnableConfigurationProperties
@EnableTransactionManagement
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
代码如上,我自己设置了一个空指针异常,但是事务没有回滚,我试过:
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
结果事务还是没有回滚,请问究竟是怎么回事呢?
在Application上是否添加了注解