gpt4 book ai didi

java - 使用Spring boot和多个数据源,如何在配置类之外指定@primary?

转载 作者:太空宇宙 更新时间:2023-11-04 10:56:00 24 4
gpt4 key购买 nike

我正在使用库中定义的 2 个数据源,因为配置在多个项目之间共享。

我收到此错误

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed

指定 @Primary 是哪个数据源有点麻烦。我真的很想将特定的实体管理器映射到特定的存储库。

jar 文件中定义的两个配置文件是相同的。将第二个配置的 jr 更改为 jr2。

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "jrEntityManagerFactory",
transactionManagerRef = "jrTransactionManager",
basePackages = {"au.com.jr"}
)
public class PSPTrxDatasourceConfig {
public PSPTrxDatasourceConfig() {
}

@Bean(
name = {"jrDataSource"}
)
@ConfigurationProperties(
prefix = "jr.datasource"
)
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}

@Bean(
name = {"jrEntityManagerFactory"}
)
public LocalContainerEntityManagerFactoryBean jrEntityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("jrDataSource") DataSource jrDataSource) {
return builder.dataSource(jrDataSource).packages(new String[]{"au.com.jr"}).persistenceUnit("jr").build();
}

@Bean(
name = {"jrTransactionManager"}
)
public PlatformTransactionManager transactionManager(@Qualifier("jrEntityManagerFactory") EntityManagerFactory jrEntityManagerFactory) {
return new JpaTransactionManager(jrEntityManagerFactory);
}
}

最佳答案

我们创建了一个 hack。还有一个额外的“多余”数据源在本地项目中指定了 @Primary。

关于java - 使用Spring boot和多个数据源,如何在配置类之外指定@primary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47320956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com