Spring Boot 和 Spring Data JPA 可用於連接到多個資料來源。為此,您可以使用 @EnableJpaRepositories 註解來指定儲存庫的基礎包,並使用 @EnableTransactionManagement 註解來啟用事務管理。然後,您可以在儲存庫方法上使用 @Transactional 註解來指定每個方法使用哪個資料來源。
例如,以下程式碼顯示如何設定 Spring Boot 連接到兩個資料來源:
@Configuration
@EnableJpaRepositories(
entityManagerFactoryRef = "orderEntityManager",
transactionManagerRef = "orderTransactionManager",
basePackages = {"com.mm.repository.customer"})
public class CustomerDbConfig {
@Bean(name = "customerEntityManager")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(){
// ...
}
// ...
}
@Configuration
@EnableJpaRepositories(
entityManagerFactoryRef = "orderEntityManager",
transactionManagerRef = "orderTransactionManager",
basePackages = {"com.mm.repository.order"})
public class OrderDbConfig {
@Bean(name = "orderEntityManager")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(){
// ...
}
// ...
}
此程式碼將建立兩個 EntityManagerFactory bean,每個資料來源一個。然後,儲存庫方法上的 @Transactional 註解將指定每個方法使用哪個 EntityManagerFactory。例如,以下程式碼顯示如何使用 @Transactional 註解來指定 findCustomer 方法應使用 customerEntityManager bean:
@Repository
public interface CustomerRepository {
@Transactional(value = "customerEntityManager")
Customer findCustomer(Integer id);
// ...
}
如果您在嘗試連接到多個資料來源時遇到異常,請務必檢查以下內容:
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3