SpringBoot—复制由SpringBoot创建的entitymanager

ftf50wuq  于 2021-07-16  发布在  Java
关注(0)|答案(0)|浏览(211)

我一直在从事一个springboot项目,我在springdatajpa的帮助下完成了所有的数据库操作。所以我只有一些实体和一些存储库,所有的crud操作都运行良好。
但是现在,这个项目需要与两个数据库进行对话。所以我所做的是在一个单独的包中创建所有新的实体和存储库。我注意到现在我需要2个EntityManager,所以我为这两个实体管理器创建了2个配置文件,配置了一个 datasource ,安 entityManager 和一个 transactionManager . 所以现在,我没有使用spring boot给我的1个entitymanager,而是自己创建了2个entitymanager。他们工作得很好,他们都和数据库进行了交谈。
我的问题是,我似乎已经失去了许多功能,在我的entitymanager, Spring 启动之前给我。例如,我的实体管理器不再在我的测试中基于它的实体创建模式,它以前是这样做的。除此之外,我确信我会遇到其他情况,在这些情况下我的 entityManager 不会像一个Spring Boot给我的那样正确配置。
因此,我的想法是只声明第二个实体管理器,并将第一个实体管理器的配置留空,但是这不起作用,并且 JpaBaseConfiguration 我注意到,如果您还没有entitymanager,spring只会创建一个entitymanager。

@ConditionalOnMissingBean({ LocalContainerEntityManagerFactoryBean.class,
            EntityManagerFactory.class })
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(
    //some code that will give you an entity manager
    );

鉴于我必须为第二个数据库配置第二个entitymanager,我似乎也被迫创建第一个,因为SpringBoot将跳过创建一个。
这就引出了我的问题:
我是否可以像spring boot那样配置我的第一个实体管理器?或者我可以强制spring给我那个entitymanager,即使我为第二个数据库声明了另一个entitymanager?有没有其他方法可以解决我的问题(我正在考虑对第二个数据库使用jdbctemplate,但是这有点失败:'()?
抱歉问了这么长时间。感谢您的回答!谢谢您!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题