У меня есть приложение для данных о микронавтах, и для операции копирования мне нужно использовать один и тот же репозиторий JPA для доступа к нескольким источникам данных. Я хотел бы ввести их в другую переменную, например, sourceRepo
и targetRepo
. Источники данных объявляются в application.yml
с именами по умолчанию и target . Если я объявлю переменную репозитория с @Inject
, она будет инициализирована для доступа к источнику данных default .
Вопрос в том, как объявить внедренную переменную репозитория, чтобы она обращалась к источнику данных target ? Я могу объявить target инъекции EntityManager
или SynchronousTransactionManager
, как показано ниже, и они работают. Но ни одна из этих аннотаций не влияет на переменную или параметр репозитория.
@Inject
@CurrentSession("target")
EntityManager entityManager;
@PersistenceContext(name = "target")
SynchronousTransactionManager<Connection> transactionManager;