Java 尝试获取锁时发现死锁;尝试重新启动事务:@RetryTransaction

Java 尝试获取锁时发现死锁;尝试重新启动事务:@RetryTransaction,java,mysql,spring,hibernate,deadlock,Java,Mysql,Spring,Hibernate,Deadlock,我正在使用mysql进行JavaSpringHibernate项目 我正在尝试在cascade中插入一些内容。作业被抛出集群,因此它们几乎可以同时发生,因此存在死锁问题 我有一个错误: 尝试获取锁时发现死锁;尝试重新启动事务 我发现spring Developer有@RetryTransaction。一种配置的方法 他们说: 方法的类必须在生成时或运行时编织 将AspectJ编译器与RetryTransactionSpect方面一起使用 包含在DellLoad stuff JAR文件中 这是什么

我正在使用mysql进行JavaSpringHibernate项目

我正在尝试在cascade中插入一些内容。作业被抛出集群,因此它们几乎可以同时发生,因此存在死锁问题

我有一个错误:

尝试获取锁时发现死锁;尝试重新启动事务

我发现spring Developer有@RetryTransaction。一种配置的方法

他们说:

方法的类必须在生成时或运行时编织 将AspectJ编译器与RetryTransactionSpect方面一起使用 包含在DellLoad stuff JAR文件中

这是什么意思

但我没有成功地使它工作。它永远不会重新启动事务。我错过了什么

谢谢

@Override
@RetryTransaction
@Transactional
public void save(AnalyseResult analyseResult){

    @SuppressWarnings("deprecation")
    final int attempt = RetryTransactionAspect.getAttempt();

    System.out.println("#############");
    System.out.println("Retry Transact : "+attempt);
    System.out.println("#############"); 

    analyseResultDao.save(analyseResult);
}
在my BeanConfig.xml中:


你的类路径上有AspectJ JAR吗?我想是的。我想看看是否有Hibernate文档,因为我想您需要使用AspectJ配置Hibernate事务管理器。我使用maven Aspectjrt.1.5.4和aspectjweaver.1.5.4处理。所以它们在类路径中。你的意思是我必须像这样添加一些配置:?
<bean class="org.dellroad.stuff.spring.RetryTransactionAspect" factory-method="aspectOf">
     <property name="persistenceExceptionTranslator" ref="hibernateExceptionTranslator"> </property>
    <property name="maxRetriesDefault" value="4"></property>
        <property name="initialDelayDefault" value="25"></property>
        <property name="maximumDelayDefault" value="5000"></property>
</bean>