使用事务性进行春季重试
Spring Retry 是否保证与 Spring 的注释配合使用?@Transactional
具体来说,我试图用于乐观锁定。它似乎取决于创建的AOP代理的顺序。例如,如果调用如下所示:@Retryable
调用代码 -> 重试代理 ->事务代理 ->实际数据库代码
然后它可以正常工作,但如果代理的结构是这样的:
调用代码 -> 事务代理 -> 重试代理 ->实际数据库代码
然后重试将不起作用,因为关闭事务的行为会引发选择性锁定异常。
在测试中,它似乎生成了第一个情况(重试,然后是事务),但我无法判断这是有保证的行为还是只是幸运的。