使用db-util库重试OpmisticLockException不起作用

时间:2017-05-04 07:06:14

标签: java hibernate jpa guice optimistic-locking

我使用此示例来实现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方面?

1 个答案:

答案 0 :(得分:0)

正如this article中所述,您需要将OptimisticConcurrencyControlAspect添加到Spring配置中。

如果你正在使用Guice,你必须创建一个类似的Aspect,因为db-util附带的一个只与Spring合作。