【发布时间】:2011-05-17 14:25:55
【问题描述】:
项目设置:Spring 3.0.5 / JPA 2 / Hibernate / @Transactional
我们使用多个不同的数据源(因此也使用不同的事务管理器),但具有通用的服务基类,因为很多功能都被重用了。
所以我们认为我们可以使用Custom Annotations 来解决这个问题。我们在一个抽象基类中定义所有方法,并为每个事务管理器创建一个空的实现类。
现在的问题是:
在AbstractFallbackTransactionAttributeSource 中,这是正在完成的查找:
TransactionAttribute txAtt = findTransactionAttribute(specificMethod);
// ...
// Second try is the transaction attribute on the target class.
txAtt = findTransactionAttribute(specificMethod.getDeclaringClass());
首先检查方法,然后检查声明该方法的类(及其祖先)。但在我们的上下文中,自定义注解位于一个向上找不到的子类中。
那么我们该如何解决这个问题呢?
[我也问过这个问题in the Spring Community Forum]
【问题讨论】:
标签: java spring spring-aop spring-transactions spring-orm