我正在使用库中定义的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);
}
}
答案 0 :(得分:0)
我们创造了一个黑客。还有一个额外的“多余”数据源,用于指定本地项目中的@Primary。