Spring Boot, 여러 데이터 소스가 있는 Spring Data JPA
Spring Boot 및 Spring Data JPA를 사용하면 여러 저장소를 다양한 데이터 소스에 연결할 수 있습니다. 참조된 블로그 게시물에서 솔루션을 제공하지만 더 자세한 접근 방식은 다음과 같습니다.
구성:
각 데이터 소스에 대해 별도의 구성 클래스를 만듭니다. 다음은 두 가지 데이터 소스에 대한 예입니다.
CustomerDbConfig(첫 번째 데이터 소스)
<code class="java">@Configuration @EnableJpaRepositories( entityManagerFactoryRef = "customerEntityManager", transactionManagerRef = "customerTransactionManager", basePackages = {"com.mm.repository.customer"}) public class CustomerDbConfig { // Bean definitions for data source, entity manager factory, and transaction manager for first data source }</code>
OrderDbConfig(두 번째 데이터 소스)
<code class="java">@Configuration @EnableJpaRepositories( entityManagerFactoryRef = "orderEntityManager", transactionManagerRef = "orderTransactionManager", basePackages = {"com.mm.repository.order"}) public class OrderDbConfig { // Bean definitions for data source, entity manager factory, and transaction manager for second data source }</code>
엔티티:
각 데이터 소스에 대한 엔터티(모델) 정의:
<code class="java">@Entity @Table(name = "customer") public class Customer { // ... } @Entity @Table(name = "order") public class Order { // ... }</code>
저장소:
다음과 같은 각 엔터티에 대한 저장소를 생성합니다.
<code class="java">public interface CustomerRepository extends JpaRepository<Customer, Integer> {} public interface OrderRepository extends JpaRepository<Order, Integer> {}</code>
애플리케이션(메인 클래스):
메인 애플리케이션 클래스에서 다음을 확인하세요. 필요한 모든 Bean이 생성되고 Spring 애플리케이션 컨텍스트가 설정됩니다.
<code class="java">@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }</code>
속성:
application.properties 파일에서 다음을 포함하여 두 개의 데이터 소스를 구성합니다. URL, 사용자 이름, 비밀번호 및 드라이버 클래스 이름과 같은 세부 정보.
<code class="properties"># Customer Data Source spring.datasource.primary.url=... spring.datasource.primary.username=... spring.datasource.primary.password=... spring.datasource.primary.driverClassName=... # Order Data Source spring.datasource.secondary.url=... spring.datasource.secondary.username=... spring.datasource.secondary.password=... spring.datasource.secondary.driverClassName=...</code>
문제 해결:
빈 누락 또는 중복과 관련된 예외가 발생하는 경우 다음을 확인하세요. :
위 내용은 Spring Boot에서 여러 Spring 데이터 JPA 리포지토리를 다른 데이터 소스에 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!