@Transactional回滚异常

roronoa_i_zoro roronoa_i_zoro 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
今天调试的时候出了个问题,搜了半天没有找到解决方案:
代码如下:
try {
GameRecord newRecord = new GameRecord(phaseCode, clientComParam.getUserId());
gameRecordDao.save(newRecord);
logger.info("Check QR Code successfully");
} catch (Exception e) {
if(e.getClass().equals(DataIntegrityViolationException.class)){
serverComParam.setContentCode(ResponseCode.CONT_DUPLICATE_PHASE_CODE.getCode());
serverComParam.setContentDesc(ResponseCode.CONT_DUPLICATE_PHASE_CODE.getErrorMsg());
logger.warn("/checkQRCode, [Error]: Phase duplicated.");
return JSON.toJSONString(serverComParam);
}else {
throw e;
}
}

按照我的理解,方法中的异常如果被try catch到了,并且没有重新作为runtimeException被抛出,事物就检测不到这个异常所以也不会回滚?但是debug的时候运行到加粗的return语句就报错说:
Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly,...

各位大佬。。这是什么原因?return语句会影响transaction检查异常吗
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
roronoa_i_zoro
Java 51,407 成员 86,129 内容