我有一个Spring-Jpa的工作代码。最近我有一个需求,我必须添加多个对象,并且为了相同的目的,我必须定义实体ManagerFactory。(代码如下).由于我添加此实体的时间(表)不会自动创建或不被应用程序识别.我的项目使用Spring父2.7.13 .我尝试了它与较新版本的Spring(3.1.3)它工作正常。有人能帮我出什么问题,有什么我错过了。我已经验证了包,它是好的。此外,在这个新的类被添加之前,它工作正常。
@Configuration
public class DataSourceConfig {
// Primary datasource configuration
@Primary
@Bean(name = "primaryDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("primaryDataSource") DataSource dataSource) {
return builder
.dataSource(dataSource)
.packages("com.example.demo.model") // base package for your JPA entities
.persistenceUnit("primary")
.build();
}
@Primary
@Bean(name = "transactionManager")
public PlatformTransactionManager transactionManager(@Qualifier("entityManagerFactory") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
// Secondary Datasource 1 Configuration
@Bean(name = "secondaryDataSource")
@ConfigurationProperties(prefix = "spring.ds1")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "secondaryJdbcTemplate")
public JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
// Secondary Datasource 2 Configuration
@Bean(name = "thirdDataSource")
@ConfigurationProperties(prefix = "spring.ds2")
public DataSource thirdDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "thirdJdbcTemplate")
public JdbcTemplate thirdJdbcTemplate(@Qualifier("thirdDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
字符串
1条答案
按热度按时间1tu0hz3e1#
对我有效的方法是:
1.我为每个数据库/用户创建了一个文件夹,我希望我的应用程序连接。例如,如果你想连接到2个数据库(db 1,db2),我创建了2个文件夹db 1和db2。
1.在这些文件夹中,我创建了一个Entity文件夹(我将对应的数据库实体放在其中),一个Repository文件夹,一个Service文件夹和一个Config文件夹。
1.在Config文件夹中,我创建了DB1_Config.java文件(DB1_Config用于db 1,DB2_Config用于db2)
字符串
和DB2_Config一样,但是无论它写DB 1,你都要把DB2放在哪里。我认为主要的问题是你必须根据不同的数据库对你的类进行分组,或者如果你在不同模式用户的同一个数据库上**。