我使用此示例来实现OptimisticLockException
处理:
How to retry JPA transactions after an OptimisticLockException
pom.xml中的依赖:
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>db-util</artifactId>
<version>0.0.1</version>
</dependency>
我注释了可能收到OptimisticLockException的方法:
@Retry(times = 10, on = OptimisticLockException.class)
public void modifySomething(){...}
但是,当发生RollbackException / OptimisticLockException / StaleStateException时,我会得到堆栈跟踪,但不会重试该方法。我在Guice 4.1.0中使用它。我应该在某处绑定它还是编写方法拦截器?如何添加AOP方面?
答案 0 :(得分:0)
正如this article中所述,您需要将OptimisticConcurrencyControlAspect
添加到Spring配置中。
如果你正在使用Guice,你必须创建一个类似的Aspect,因为db-util
附带的一个只与Spring合作。