java如何使用Spring数据ORM/JPA创建EntityManagerFactory?
我正在创建一个独立的Java应用程序,它将Spring数据与JPA结合使用
为EntityManagerFactory创建工厂的类的一部分如下:
@Configuration
@Lazy
public class JpaConfig {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(MultiTenantConnectionProvider connProvider, CurrentTenantIdentifierResolver tenantResolver) {
...
}
问题是:我只能在初始化ApplicationContext后检测Hibernate方言,因为这些信息是从外部配置服务读取的
既然@Lazy
不起作用,有没有什么策略可以避免在使用这个bean之前创建它,也就是说,只在另一个bean注入EntityManager实例时创建它
# 1 楼答案
我最近偶然发现了这个问题,并找到了一个有效的解决方案。不幸的是,“容器”管理的bean将在启动期间初始化,
@Lazy
被忽略,即使EntityManager
没有被注入任何地方我通过在启动期间使用内存中的H2 DB构建工厂bean来修复它,并在以后对其进行了更改。我想你可以为你的问题做些什么
波姆。xml:
源代码: