问题: 有没有一种方法可以让Spring声明式事务推迟对异常的回滚?
用例:
因此,我要实现的目标是收集处于故障状态的实体上的所有错误,并通知某人进行修复。因此,我希望封装所有实体处理的事务能够进行到最后一个实体,然后才需要回滚。
到目前为止我尝试过的事情:
像这样propagation = NESTED
使用:
@Transactional
void processAllEntities() {
entities = fetchEntities();
for (entity : entities) {
processSingleEntity();
}
}
@Transactional(propagation = NESTED)
void processSingleEntity(entity) {
do stuff;
}
请注意,以上方法在不同的@Component
注释类中,并且processAllEntities()
从第三类调用。
此操作失败,因为JpaDialect
不支持保存点。
我尝试按照DataSourceTransactionManager
的javadoc中的建议切换到Propagation.NESTED
,但是由于此事务管理器似乎JPA
并不了解,并且我的整个模型都映射了{ {1}}批注,而我使用JPA
来保持持久性。
欢迎任何想法和反馈。谢谢。