0

私はアプリケーションを開発しており、JPA エンティティ (注釈 + persistence.xml) の作成から始めました。次に、persistence.xml ファイルで、MySql データベースへの接続を作成しました (接続は問題ありません)。

問題は、「メイン クラス」を作成せずにエンティティを永続化する方法がわからないことです。

作成するエンティティごとにメイン クラスを実行する必要がありますか?

4

1 に答える 1

1

エンティティを永続化するには、entityManager のインスタンスが必要です。Java EE コンテナーがあるため、 Bean@PersistenceContextのアノテーションを使用して entityManager のインスタンスを取得できます。

とはどういう意味ですか?Java EE コンテナーによって管理される Bean です。したがって、たとえば、次のように Bean を定義する必要があります。

@Stateless
public class MyController{
    @PersistenceContext
    private EntityManager em;

    public void persistIt(Object anEntity){
        em.persist(anEntity);
    }
}

注釈@Statelessは、コンテナがこのクラスを管理し、必要に応じて entityManager のインスタンスを提供する必要があることをコンテナに示します。

したがって、あなたの質問に正確に答えるには、entityManager インスタンスにアクセスする方法を見つけたらすぐに、エンティティを永続化するために別のクラスを用意する必要はありません。

しかし

  • それは間違いなくベストプラクティスではありません。
  • entityManager インジェクションを利用するには、別のマネージド Bean を使用して、コンテナによって entityManager をインジェクトでき​​るようにする必要があります。

さらに、コントローラーは、トランザクションを適切に処理できる場所です。

于 2013-03-02T13:20:18.163 に答える