我正在尝试使用Spring-jpa-data中的Crud存储库:
我的数据访问bean配置如下:
@Configuration
@EnableTransactionManagement
@ComponentScan (basePackages = {"com.comp.olme"})
@PropertySource("classpath:OlmeSmb-${env}.properties")
@EnableJpaRepositories(basePackages="com.comp.olme", entityManagerFactoryRef ="emGapSort", transactionManagerRef = "txManagerGapSort")
@EnableScheduling
public class OlmeSmbConfig {
@Bean
public BasicDataSource olmeDataSource() {
BasicDataSource olmeDataSource = new BasicDataSource();
...
return olmeDataSource;
}
@Bean
public BasicDataSource gapSortDataSource() {
BasicDataSource gapSortDataSource = new BasicDataSource();
...
return gapSortDataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean emFactoryOLME(@Qualifier("olmeDataSource") BasicDataSource olmeDataSource) {
LocalContainerEntityManagerFactoryBean localConnectionFactoryBean = new LocalContainerEntityManagerFactoryBean();
...
return localConnectionFactoryBean;
}
@Bean
public LocalContainerEntityManagerFactoryBean emFactoryGapSort(@Qualifier("gapSortDataSource") BasicDataSource gapSortDataSource) {
LocalContainerEntityManagerFactoryBean localConnectionFactoryBeanGapSort = new LocalContainerEntityManagerFactoryBean();
...
return localConnectionFactoryBeanGapSort;
}
@Bean
public EntityManager emOLME(@Qualifier("emFactoryOLME") EntityManagerFactory entityManagerFactory) {
return entityManagerFactory.createEntityManager();
}
@Bean
public EntityManager emGapSort(@Qualifier("emFactoryGapSort") EntityManagerFactory entityManagerFactory) {
return entityManagerFactory.createEntityManager();
}
@Bean
public JpaTransactionManager txManagerOLME(@Qualifier("emFactoryOLME") EntityManagerFactory entityManagerFactoryOLME) {
JpaTransactionManager txManagerOLME = new JpaTransactionManager();
...
return txManagerOLME;
}
@Bean
public JpaTransactionManager txManagerGapSort(@Qualifier("emFactoryGapSort") EntityManagerFactory entityManagerFactoryGapSort) {
JpaTransactionManager txManagerGapSort = new JpaTransactionManager();
....
return txManagerGapSort;
}
}
因此,如您所见,我有两个数据源、两个EntityManagerFactories、两个TransactionManager和其他。。。
但我只将一个EntityManagerFactory传递到@EnableJpaRepositories
注释中(EntityManager FactoryRef=“emGapSort”
)。
问题是:两个如何通过Spring-jpa-data使用多个数据源(entityManagerFactory)?
我读过一个示例,其中拆分配置被描述为一种解决方案,但我想使用一个 Spring Config。有可能吗?谢谢。
来自Spring靴- #5401
经过深思熟虑,我们决定不实施此项。您的注释建议是配置密钥前缀、bean前缀和其他bean相关设置的混合。虽然它在纸面上听起来很吸引人,但它很难实现,甚至很难与用户的定制保持一致。
因此,您可以尝试将其放在两个@Configuration
类(每个@Configuration
一个@EnableJpaRepositories
)。
问题内容: 我的应用程序具有多个数据源,因此我基于此URL创建了两个数据源配置类 。 但是在运行spring boot应用程序时出现错误 说明:com.cavion.services.UserDataService中的userDataRepo字段需要找不到名为’entityManagerFactory’的bean。行动:考虑在你的配置中定义一个名为“ entityManagerFactory”的b
如何使用Spring Data JPA配置多个数据库? 只要提供一些有用的链接,我就可以在示例Spring Data JPA应用程序中浏览和配置多个数据库。
问题内容: 这是我正在尝试使用Spring Data JPA实现类似解决方案的代码。 CustomerDbConfig.java(第一个数据源连接) CustomerDbConfig.java(第二个数据源) Order.java(模型) … CustomerRepository.java 最后,Application.java 在启动过程中会引发以下异常: 预先感谢你的帮助。 问题答案: 通过使
如何创建具有应用程序属性中提到的多个数据源配置的单个配置 java 文件,以便在添加任意“n”个数据源时。它必须使用相同的配置文件自动处理所有数据源。 此外,所有数据源必须使用相同的 JPARepository 来查询数据。此外,我想创建一个实体管理器列表,以对特定数据源执行特定操作。 application.properties 站点配置.java 这是单个数据源配置文件的基本示例。我想以“si
基于我上一篇文章:Spring JPA long SQL String for NativeQuery null 我试着重命名了上面看到的文件,但它说文件中的方法在启动过程中找不到。知道如何让项目理解多个orm.xml文件吗?
问题内容: 我是Spring数据JPA的新手,正在尝试了解如何最好地将其与QueryDSL结合使用。没有QueryDSL,我将可以在SpringData接口中使用@Query注释简单地创建任何查询。 为了获得与使用QueryDSL相同的经验,从我可以看到的角度来看,我需要创建自己的自定义存储库实现,并使我的repo接口扩展我的自定义实现接口,或者将我的所有QueryDSL查询放在包装我的repo的