2011-01-04 9 views
0

私はORMとJPAの初心者です。 IngresにTable1というテーブルがあります。 IngresからOracleにTable1をコピーする必要があります。私は両方のデータベースに接続するのに成功しています。 Table1という1つのEntityクラスのみを作成し、この操作を次のように実行できますか: Table1のすべてのレコードを持つIngresからリストを取得します。 リストを永続化します(コレクション・エレメントによって完全ではない場合は個別に)。1つのEntityクラスを2つの異なるデータベース(OracleとIngres)にマッピングする

私はあなたの提案と助けに感謝します。

おかげで、この目的のために PK

答えて

2

は、persistence.xmlのファイル内の異なるデータベースを指す2つの永続性単位を設定します。

<persistence> 
    <persistence-unit name="oracleDB"> 
     <jta-data-source>java:/OracleDB</jta-data-source> 
     ... 
    </persistence-unit> 

    <persistence-unit name="ingresDB"> 
     <jta-data-source>java:/ingresDB</jta-data-source> 
     ... 
    </persistence-unit> 
</persistence> 

永続コンテキストは、指定された永続ユニットのコンテナによる注釈を使用して挿入されます。

@PersistenceContext(unitName="oracleDB") 
    private EntityManager oracleEntityManager; 

    @PersistenceContext(unitName="ingresDB") 
    private EntityManager ingresEntityManager; 

次に、それぞれのentityManagerインスタンスを使用してデータベースに対して操作を実行できます。

両方のデータベースでテーブル名と構造が同じである必要があります。&ベンダーが提供するネイティブ機能を移植性のために使用しないでください。

関連する問題