我对 Spring 和事务还很陌生。我确信这个问题之前已经被问过,但我仍然无法找到正确的方法来解决这个问题。
我正在使用 Spring 和休眠。我有一个这样的服务方法:
@Transactional
public void processPendingReport(Report report) {
try {
// Do processing stuff, update report object state
reportDAO.save(report);
} catch (Exception e) {
reportDAO.markReportAsFailed(report);
}
}
如果在处理过程中发生 RuntimeException,则会抛出“事务标记为 rollbackOnly”RollbackException,因此报告不会被标记为失败(尽管我希望如此)。
我试过使用@Transactional(noRollbackFor=Exception.class),但仍然遇到同样的问题。有什么建议吗?会不会是配置问题?