数週間前に EJB を学び始めましたが、クライアント側とサーバー側でエンティティ クラスを再利用する方法について質問があります。CRUD アプリケーションがあるとします。
- サーバーは EJB として記述され、データを管理します (作成、読み取り、更新、削除)。JPAを使用してデータベースに接続します。
- クライアントは JSF2 を使用して作成されており、リモート EJB を使用してデータを管理する単純な GUI です。
- 両方 (クライアントとサーバー) が異なるサーバーで動作します。
- EJB を使用するには、クライアントに EJB インターフェースとエンティティーが必要です (エンティティーは、EJB によって返されるオブジェクトを逆シリアル化するために必要です)。
- サーバー側エンティティには JPA アノテーションがあります。
- クライアント側のエンティティはサーバーと同じである必要がありますが、JPA アノテーションは必要ありません。
- 保守が容易なため、両方の (クライアントとサーバー) エンティティは同じ jar ライブラリにある必要があります。
これらは問題を解決するための私の提案です:
- クライアントとサーバーが必要な方法で実装できるように、エンティティ インターフェイスのみを含むライブラリを作成します。
- JPA アノテーションのないエンティティ実装を含むライブラリを作成します (サーバーはアノテーションの代わりに xml を使用する必要があります)。
最善の解決策は何ですか?私の解決策は正しいですか?何か提案があればよろしくお願いします。