Spring Boot、複数の DataSources を備えた Spring Data JPA
Spring Boot と Spring Data JPA を使用して、複数のリポジトリを異なるデータ ソースに接続できます。参照されているブログ投稿には解決策が記載されていますが、より詳細なアプローチは次のとおりです。
構成:
データ ソースごとに個別の構成クラスを作成します。以下は 2 つのデータ ソースの例です:
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 (2 番目のデータ ソース)
<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>
Properties:
application.properties ファイルで 2 つのデータ ソースを構成します。 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>
トラブルシューティング:
Bean の欠落または重複に関連する例外が発生した場合は、次のことを確認してください。 :
以上がSpring Boot で複数の Spring Data JPA リポジトリを異なるデータ ソースに接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。