私はこのリンクをたどり、2つ以上のデータソースを設定しようとしています。スプリングデータJPA複数のデータソース
https://www.ccampo.me/java/spring/2016/02/13/multi-datasource-spring-boot.html
これは、2つのデータソースを定義する方法について説明し、しかし、実際に照会しながら、それらを使用する方法について説明していませんでした。
application.propファイルにコンフィグレーションクラス&が追加されました。しかし、それらをrepo機能/サービス機能でどのように定義するか?
コントローラ
public class EmpController {
@RequestMapping("/abcd")
public List<Employee> findAll() { return empService.findAll(); }
}
サービス
@Service
public class EmpService {
@Autowired
private EmpRepository empRepo;
public List<Employee> findAll() { return empRepo.findAll(); }
}
レポ
public interface EmpRepository extends JpaRepository<Employee, Long> {}
設定
@Configuration
public class DataSourceConfiguration {
@Bean
@Primary
@ConfigurationProperties(prefix = "datasource.primary")
public DataSource numberMasterDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "datasource.secondary")
public DataSource provisioningDataSource() {
return DataSourceBuilder.create().build();
}
}
application.properties
# Primary DataSource configuration
datasource.primary.url=jdbc:mysql://127.0.0.1:3306/jpa
datasource.primary.username=root
datasource.primary.password=root
# Any of the other Spring supported properties below...
# Secondary DataSource configuration
datasource.secondary.url=jdbc:mysql://127.0.0.1:3306/jpa2
datasource.secondary.username=root
datasource.secondary.password=root
はまた、私は、私は読む&書き込みのために異なるのDBを持って としてさまざまなデータソースに対して別々のリポジトリを持っていると思いますscroll down toパソコンへ転送します。だから私のすべての挿入クエリは、あるサーバー上にある&他のサーバー上のクエリを読んでいます。 &の書き込み用に異なるリポジトリ/サービスを作成すると、あまりにも多くの冗長コードが存在します。
クエリコードを表示しますか? – johncena
コード –
@AnkitBansalに関する質問を編集しました。データベースは同一で、常に同じです(たとえば、一方は他方の読み取り複製)。そうでない場合、異なるデータベース構造は自動的に同じ(正確な)データを格納しないことを意味します。したがって、どちらも異なるエンティティを必要とし、したがって別々のリポジトリを必要とします。 – manish