我正在开发一个带有 wicket 的通用 CRUD 应用程序,它可以使用 AbstractDao 模式的实现编辑任何 Spring/JPA 实体,例如 UserDaoImpl 、 ForumDaoImpl ...等
在我的检票口页面中:我必须使用 @SpringBean 来确定PlatformTransactionManager
要使用的内容,例如:
@SpringBean(name="transactionManagerUser")
private PlatformTransactionManager transactionManagerUser;
private TransactionTemplate txTemplate;
public CrudPage(final PageParameters pps , final AbstractDao<T> dao)
{
super(pps);
txTemplate= new TransactionTemplate(transactionManagerUser);
}
问题是,这些 DAO 使用不同的事务管理器,例如transactionManagerUser
,transactionManagerForum
...等。
我无法在我的代码中硬编码这些 txManager 的名称。我必须以编程方式获取 dao 的 txManager 。如何做到这一点?
非常感谢 !
- - - - 更新 - - - -
好吧,我已经通过传递PlatformTransactionManager
到 CRUD 页面解决了这个问题(并使用它transactionTemplate = new TransactionTemplate(platformTransactionManager)
来生成一个 txTemplate ',并且效果很好。虽然没有直接解决问题,但无论如何,它可以工作。