Spring:@PersistenceContext注入是否可以通过@Profile进行调节?

时间:2018-10-30 20:21:50

标签: spring dependency-injection

我想使用Spring概要文件定义两个(或更多)不同的EntityManagerFactories;请注意,我可以同时激活多个配置文件:

@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) {
   //...
}

但是并不是说已经构建了“ prodEMF” EntityManagerFactory(取决于活动的配置文件):在这种情况下,Spring抱怨“不能注入名为prodEMF的bean”。

我还没有找到一种方法来使PersistenceContext注入受活动配置文件限制;例如,我不会写:

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

有什么解决办法吗? 谢谢您的帮助!

0 个答案:

没有答案