【发布时间】:2022-01-01 05:50:26
【问题描述】:
我想在发生错误的情况下回滚数据的事务,同时将错误写入db。
我无法处理事务性注释。
以下代码会产生运行时错误 (1/0),但仍会将数据写入数据库。并将数据写入错误表。
我尝试了几种变体,并在 StackOverflow 中遵循了类似的问题,但没有成功。
谁有提示,怎么办?
@Service
public class MyService{
@Transactional(rollbackFor = Exception.class)
public void updateData() {
try{
processAndPersist(); // <- db operation with inserts
int i = 1/0; // <- Runtime error
}catch (Exception e){
persistError()
trackReportError(filename, e.getMessage());
}
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void persistError(String message) {
persistError2Db(message); // <- db operation with insert
}
【问题讨论】:
标签: spring-data-jpa spring-transactions