Spring Boot e Spring Data JPA podem ser usados para conectar-se a várias fontes de dados. Para fazer isso, você pode usar a anotação @EnableJpaRepositories para especificar o pacote base para seus repositórios e a anotação @EnableTransactionManagement para habilitar o gerenciamento de transações. Você pode então usar a anotação @Transactional em seus métodos de repositório para especificar qual fonte de dados usar para cada método.
Por exemplo, o código a seguir mostra como configurar o Spring Boot para se conectar a duas fontes de dados:
@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(){
// ...
}
// ...
}
Este código criará dois beans EntityManagerFactory, um para cada fonte de dados. A anotação @Transactional nos métodos do repositório especificará qual EntityManagerFactory usar para cada método. Por exemplo, o código a seguir mostra como usar a anotação @Transactional para especificar que o método findCustomer deve usar o bean customerEntityManager:
@Repository
public interface CustomerRepository {
@Transactional(value = "customerEntityManager")
Customer findCustomer(Integer id);
// ...
}
Se você estiver recebendo exceções ao tentar se conectar a várias fontes de dados, é importante verificar o seguinte:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3