私はJPAにあまり詳しくありませんが、次のシナリオがあります。KISS/ DRYの理由から、サーバーとクライアント(Java SE)の両方で同じクラス(「コード」を読み取る)を使用したいと思います。これを行うための1つの可能な方法はEntityManager
、エンティティの要求をサーバーに渡し、最後にすべてのエンティティをサーバーに戻して「バッチ永続化アクション」を実行する(特別な?)クライアントを使用することです。クラスは、データを(再)検証し、いくつかのトランザクション操作(更新など)を適用し、JPA実装によってすべて適切に永続化できます。
質問は:それは可能ですか?どのように?(これに対する解決策はすでにありますか?「いくつかの」コードでこれを解決するのは簡単ですか?)
編集:わかりました、皆さんのためにいくつかのことを明確にしましょう。私のバックグラウンドは、汎用永続化サービスと呼ばれるものを使用する、社内で開発されたアプリケーションフレームワークです。つまり、単一のトランザクション内でCRUDアクション(任意のテーブルのアクションごとに1つのサービス)を実行するためのサービスですが、これらのアクションをインターセプトし、検証と(多くの場合)複雑なビジネスルール(他のテーブルの更新を伴う)を提供するクラス(サービス内)によってサポートされます。等。)。これは、古いMicrosoft製品で実装されていました。現在、.NETへの移行があり、最近、同様に機能するが、DevForceやCSLAなどのより高度なフレームワークが登場しました。特にDevForceは、私がJavaでもやりたいことを提供します(このページの「クライアントでの実行」の段落を参照してから、より良い概要については、このページを参照してください)。
この一般的な主題に関する私の古い質問:CSLAと「同等の」Java