質問
新しい会社で新しいプロジェクトに参加しましたが、JPAを使用してDBの作業をしようとしています。したがって、EJBを備えたEarとWebサービスがあり、その後、実際にすべての作業を行うアプリクライアントがEarにあります。 WebサービスはEJBを呼び出し、EJBはクライアントを呼び出してDBの作業を行います。そのため、appclient内でアノテーションを介してEntityManagerをロードしたいのですが、動作しないようです(emは常にnullです):
@Entity
public class Whatever...{
@PersistenceContext(unitName="pu")
EntityManager em;
}
したがって、EJBでEntityManagerをロードする必要があると考えていましたが、EJBではなくappclientにあるため、JPAがEntityクラスを認識していないようであるため、どちらも機能しませんでした。誰でも私にいくつかのガイダンスを提供できますか?
解決
これはアプリクライアントの誤用です。すべてのdb処理はEJBで発生するはずです。アプリクライアントが存在する明白な理由はないようです。
このリンクは古い記事へのリンクですが、アプリクライアントの用途(バックエンドサービスではないアプリケーション)の例を示しています。
所属していません StackOverflow