将2个数据源注入spring + hibernate应用程序总是抛出没有事务正在进行中的错误

我有Spring + JPA(Hibernate)项目,我连接到MsSQL数据库,现在我需要打开一个新连接,但这次它将用于MySQL 。 我正在使用XML配置

   ....     false ....            ....     false ....         

然后我尝试使用片段注入entityManager

 @PersistenceContext(unitName="dataSourcePU") EntityManager entityManager; @PersistenceContext(unitName="enduserDataSourcePU") EntityManager endUserEntityManager; 

它仅适用于第一个数据库,但是当尝试在第二个数据库上保持时它会返回错误

 javax.persistence.TransactionRequiredException: no transaction is in progress 

我试图用@Transactional("transactionManager")一次注释方法(其中包含persist()调用),另一次@Transactional(value = "enduserTransactionManager") ,第二个entityManager总是抛出相同的exception

我试图将persist()调用分成不同的方法,并注释两个方法@Transactional("transactionManager")@Transactional(value = "enduserTransactionManager")但仍然得到相同的错误

 @Transactional(value = "enduserTransactionManager") private void createNewBrandMySQL(Brand newBrand) { 

 @Transactional("transactionManager") public Integer createNewBrand(Brand newBrand) throws EntityDoesntExistException { //this method calls createNewBrandMySQL 

通过使用entityManagerFactory直接注入另一个em修复

 @PersistenceContext(unitName = "dataSourcePU") EntityManager entityManager; @Autowired @Qualifier("enduserEntityManagerFactory") EntityManagerFactory endUserEntityManagerFactory; EntityManager endUserEntityManager; @PostConstruct public void init() { endUserEntityManager = endUserEntityManagerFactory.createEntityManager(); }