Spring Boot et Spring Data JPA peuvent être utilisés pour se connecter à plusieurs sources de données. Pour ce faire, vous pouvez utiliser l'annotation @EnableJpaRepositories pour spécifier le package de base de vos référentiels et l'annotation @EnableTransactionManagement pour activer la gestion des transactions. Vous pouvez ensuite utiliser l'annotation @Transactional sur les méthodes de votre référentiel pour spécifier la source de données à utiliser pour chaque méthode.
Par exemple, le code suivant montre comment configurer Spring Boot pour se connecter à deux sources de données :
@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(){
// ...
}
// ...
}
Ce code créera deux beans EntityManagerFactory, un pour chaque source de données. L'annotation @Transactional sur les méthodes du référentiel spécifiera ensuite quelle EntityManagerFactory utiliser pour chaque méthode. Par exemple, le code suivant montre comment utiliser l'annotation @Transactional pour spécifier que la méthode findCustomer doit utiliser le bean customerEntityManager :
@Repository
public interface CustomerRepository {
@Transactional(value = "customerEntityManager")
Customer findCustomer(Integer id);
// ...
}
Si vous obtenez des exceptions lorsque vous essayez de vous connecter à plusieurs sources de données, il est important de vérifier les points suivants :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3