1

JPAを介して複数のデータベース/データソースに接続する際のドキュメントがありますが、これは正確ではありません。私は、開発用に1つのデータベースプロバイダを使用し、実稼働用に全く異なるデータベースプロバイダ(おそらくはQA)を使用したいと考えています。この質問は、異なるデータベース・プロバイダ(つまり、DB2 for Client 1、Oracle for Client 2、MySQL for Client 3など)を使用して異なるプロダクション環境をサポートする場合にも適用できます。私の場合はJPAを使用して開発用に異なるデータベースプロバイダを使用する

、私は次の操作を実行したいと思います:

  • は行っておりません

生産目的のためにIBM DB2とJPAを使用

  • 開発目的のためにApache Derbyを持つJPAを使用しますSpringを使用する:(

    MyBatisを使用すると、サポートしたいデータベースごとにXMLマッピングを提供するだけで、すべての結果を同じエンティティ/ POJOにマップすることができます。

    これまでのところ、JPAはサービス層(エンティティ、DAO、SQLはすべてデータベースごとにカスタム化されています)まですべてカスタム化する必要があります。

    私は開発用にDB2を使用するためにアプリケーションをセットアップする方法を知りたいです。 DAOレイヤーを別々のプロジェクトに分ける必要がありますか、1つのpersistence.xmlなどを使用することはできますか?

    これに対応するためにどのようなアプローチをお勧めしますかをお知らせください。

  • +0

    JPAでもデータベースごとにXMLマッピングを提供できます。別のデータストアで別のスキーマを使用する必要がある場合は、アノテーションを使用しない –

    答えて

    0

    これはかなり一般的なシナリオです.JAAを適切に使用している場合は、何も複製する必要はありません。同じ@EntityのクラスとDAOを使用できます。

    Mavenを使用している場合は、Mavenプロファイルに固有の接続設定を行うことができます。各環境のプロファイルを作成し、persistence.xmlファイルのMavenリソースフィルタリングプロパティに入力します(this answerを参照)。

    関連する問題