私はかなり長い間これに悩まされてきました。誰かが私に光を当ててくれることを願っています.
Swing/RCP などのリッチ クライアント プラットフォームでは、データベースから取得したエンティティ オブジェクトをどのように管理できますか?
クライアント/サーバー アーキテクチャを使用せず、クライアントをデータベースに直接接続させる場合、JPA/EntityManager の助けを借りて、これは非常にうまく機能します。この場合、UI 上のすべてのエンティティ オブジェクトは EntityManager によって管理され、それらの間のすべての関係も適切に維持されます。JPA からの LazyInitialization Exception にも問題はなく、クライアントと EntityManager の両方が同じ JVM にあるためです。同じエンティティを持つオブジェクトの重複はありません。
ただし、サーバーをクライアントから分離したい場合、クライアント UI はエンティティからマップされた DTO オブジェクトのみを処理します。これらの DTO オブジェクトを同期させるのは大きな頭痛の種です。同じサーバー側エンティティを表している場合でも、サーバー要求ごとに新しい DTO オブジェクトが作成されます。クライアント側の DTO の関係も非常に脆弱です。1 つのオブジェクトの変更は、同じエンティティのすべての重複から簡単に確認できません。
クライアント側の EntityManager として機能できるフレームワーク、またはこのシナリオで機能するキャッシュ メカニズムはありますか? どんな提案でも大歓迎です!
よろしく、ウードン