在JPA中配置多数据源的方法有以下几种:
spring.datasource.primary.url=jdbc:mysql://localhost:3306/db1 spring.datasource.primary.username=root spring.datasource.primary.password=123456 spring.datasource.secondary.url=jdbc:mysql://localhost:3306/db2 spring.datasource.secondary.username=root spring.datasource.secondary.password=123456 然后在需要使用的地方使用@Qualifier注解指定具体的数据源。
@Configuration注解创建一个配置类,通过@Bean注解创建多个数据源的Bean,并指定不同的属性。然后在需要使用的地方使用@Qualifier注解指定具体的数据源。@Configuration public class DataSourceConfig { @Primary @Bean(name = "primaryDataSource") @ConfigurationProperties(prefix = "spring.datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "secondaryDataSource") @ConfigurationProperties(prefix = "spring.datasource.secondary") public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); } } 然后在需要使用的地方使用@Qualifier注解指定具体的数据源。
persistence.xml文件中配置多个数据源的相关属性,然后在需要使用的地方使用@PersistenceContext注解指定具体的数据源。<persistence-unit name="primary" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <non-jta-data-source>java:/comp/env/jdbc/primary</non-jta-data-source> ... </persistence-unit> <persistence-unit name="secondary" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <non-jta-data-source>java:/comp/env/jdbc/secondary</non-jta-data-source> ... </persistence-unit> @PersistenceContext(unitName = "primary") private EntityManager primaryEntityManager; @PersistenceContext(unitName = "secondary") private EntityManager secondaryEntityManager; 以上是配置多数据源的几种方法,可以根据具体需求选择合适的方式。