Я разрабатываю универсальное приложение CRUD с калиткой, которое может редактировать любые сущности Spring / JPA с реализацией шаблона AbstractDao, такие как 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 в моем коде.
Я должен программно получить дао txManager. Как этого добиться?
Большое спасибо!
------- обновлено -------
Что ж, я решил эту проблему, передав PlatformTransactionManager
странице CRUD (и использую transactionTemplate = new TransactionTemplate(platformTransactionManager)
для генерации txTemplate ', и она работает хорошо. Хотя и не решает проблему напрямую, в любом случае, она работает.