如何使用事务中的失败记录详细信息将数据保存在数据库中?

时间:2018-07-17 13:28:37

标签: java mysql spring hibernate transactions

我有一个场景,其中我使用不同的查询将数据写入不同的表。我在服务级别有可重复的读取事务。我正在使用MySQL DB和Spring MVC。如果交易成功,那么我在某张表COMPLETE中将标志状态设置为JOB_STATUS。现在的问题是,当代码中发生异常时,我需要在FAILED表中将fLag设置为JOB_STATUS。但是,在异常期间,将数据保存在JOB_STATUS表中也会回滚。我该如何避免呢?

@Transactional(repeatable-read)
try { 
    // do some transactions to save User data in DB
    // do the transaction to save status as Complete in job_status table
} catch(Exception e) {
    // in case of an exception I need to set status as failed in job_Status table
}

在catch块中,当发生异常时,我还需要在job_status表中将状态设置为“失败”,因为整个方法都带有@Transnational注解和repeatable-read,所以我无法设置此状态。关于如何避免它的任何指示?

0 个答案:

没有答案