11.9. 異なる二つのデータストア間でのオブジェクトのレプリケーション


永続インスタンスのグラフを別のデータストアに永続化する場合に、識別子の値を再生成せずにすむと便利な場合があります。
//retrieve a cat from one database
Session session1 = factory1.openSession();
Transaction tx1 = session1.beginTransaction();
Cat cat = (Cat) session1.get(Cat.class, catId);
tx1.commit();
session1.close();

//reconcile with a second database
Session session2 = factory2.openSession();
Transaction tx2 = session2.beginTransaction();
session2.replicate(cat, ReplicationMode.LATEST_VERSION);
tx2.commit();
session2.close();
Copy to Clipboard Toggle word wrap
データベースに既存の行がある場合、replicate() が衝突をどのように扱うかを ReplicationMode で指定します。
  • ReplicationMode.IGNORE:同じ識別子を持つ行がデータベースに存在するなら、そのオブジェクトを無視します。
  • ReplicationMode.OVERWRITE:同じ識別子を持つ既存の行をすべて上書きします。
  • ReplicationMode.EXCEPTION:同じ識別子を持つ行がデータベースに存在する場合、例外を投げます。
  • ReplicationMode.LATEST_VERSION:行に保存されているバージョン番号が、引数のオブジェクトのバージョン番号より古い場合、その行を上書きします。
次のようなケースで、この機能を使用します。異なるデータベースインスタンスに入れられたデータの同期、製品更新時におけるシステム設定情報の更新、非 ACID トランザクションのなかで加えられた変更のロールバックなどです。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat