私は単純なクライアント(JavaSE、スイング) - サーバ(Java EE、EJB、JPA)アーキテクチャを持っています。JPAクライアント/サーバーレプリケーション/同期フレームワーク
私はサーバー側のエンティティに対してクライアント側の "キャッシュ"を作成したいと考えています。たとえば、エンティティをダウンロードした場合、エンベデッドダービーDB(クライアント側のJPA)に保存しますので、次回、必要になったときに、クライアントは独自のDBを最初に検索し、そこからエンティティを取得できますネットワーク通信を節約する。 (単純なレプリケーション)
私の問題はエンティティのIDから始まります。クライアントとサーバーの両方で同じIDを持つのは実際の悪い習慣ですから、クライアントサイドIDとサーバーサイドIDのマッピングを保存する必要がありますエンティティの 私は非常に多くのentites(15〜20 ..)とそれらの間の関連を持っているので、問題は継続します。
-
:サーバ通信(更新、マージ)に向かって、またはクライアント側に右ID-Sを配置
- クライアントサイドのエンティティを変更してサーバーに送信する前に、サーバーに送信する前に、エンティティセット内のクライアント側ID(さまざまな@OneToMany外部キー)を置き換える必要があります。
- サーバー側からは、問題は別のものです。
は、いくつかの多分再帰反射コード、マップされたID-Sのトラッキングを保持するエンジンを有するように促進します
このようなフレームワークは誰でも知っていますか?特にJPAユーザーにとっては?または、実装のヒントがあるかもしれませんか?可能であれば は//私は、同じIDを使用しないで何を事前に
おかげで、 アンドラーシュリットル
ヒントありがとうございます!何らかのフレームワークがあるかどうか、私の多くのネストされたエンティティに対してこのようなID処理ロジックを実装することをスキップすることができたかどうかは疑問でした。 –
休止状態のリスナーは、すべてのエンティティで機能しました。エンティティがデータベースに保存されると実行されます。他の唯一のIDロジックは、クライアントからサーバーへの同期でした。おそらくリスナーを書くこともできます。そして、すべてが2つのクラスに含まれています。 – Allan