Spring: Может ли инъекция @PersistenceContext быть обусловлена ​​через @Profile? - PullRequest
0 голосов
/ 30 октября 2018

Я хочу определить две (или более) разные EntityManagerFactories, используя профили Spring; обратите внимание, что у меня может быть несколько активных профилей одновременно:

@Bean("devEMF")
@Profile("development")
public EntityManagerFactory devEntityManagerFactory(Properties properties) {
  ///....
}

@Bean("prodEMF")
@Profile("production")
public EntityManagerFactory prodEntityManagerFactory(Properties properties) {
  ///....
}

Проблема в том, что для использования лежащих в основе EntityManager мне нужно ввести их:

@PersistenceContext(unitName="prodEMF")
public void setFirstEMPersistenceContext(EntityManager entityManager) {
   //...
}

но не сказано, что EntityManagerFactory "prodEMF" был создан (это зависит от активных профилей): в этом случае Spring жалуется, что "ни один бин с именем prodEMF не может быть введен".

Я не нашел способа сделать инъекцию PersistenceContext обусловленной активными профилями; например, я не могу написать:

@Profile("production")
@PersistenceContext(unitName="prodEMF")
public void setFirstEMPersistenceContext(EntityManager entityManager) {
   //...
}

Есть ли решение? Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...