2017-05-15 9 views
0

我々は別のDBからデータベースを移行するプロセスにあり、我々は、アプリケーションのダウンタイムを与えることができません。このプロセスで同じエンティティを作成し、移行したらソースを削除することができます。我々は、アプリケーションのために休止状態を使用しています。休止状態が、同じテーブル構造を持つ複数のスキーマに同じエンティティを書き込むことができる方法はありますか? 。また、これらの2つのDB間でトランザクションを行う必要がありますHibernateは複数のデータベースで同一のオブジェクト、同じテーブルを保持

答えて

0

各セッションを1つのDB接続で作成し、次にBeanを保存するときに両方のセッションからsession.save()を呼び出す必要があります。

例:

Foo foo = new Foo(); 
foo.setName('FooName'); 
foo.setType('FooType'); 

session1.save(foo); 
session2.save(foo); 

あなたはとてもあなたが@Transactionalで扱い、他に1 DBに保存しない避けることができServiceでそれをラップすることができます。

+0

子エンティティ、コレクション、サブチャイルドも持っています。子エンティティが2番目のDBに存在しない場合があるため、オブジェクトを永続化しようとすると難しくなります。だから私はこれを行うためのフレームワークや簡単な方法を探しています – user1670539

0

あなたが永続性ユニットに精通しているなら、それはあなたのためにうまくいくでしょう。永続性単位を定義する複数のデータソース(つまり、データベース接続を意味する)を扱うことができます。スプリングパーシスタンスユニットとパーシステンスコンテキストのドキュメントを参照してください。

私はそれがあなたが達成しようとしているものに役立つことを願っています。

関連する問題