私はアプリケーションを開発しており、JPA エンティティ (注釈 + persistence.xml) の作成から始めました。次に、persistence.xml ファイルで、MySql データベースへの接続を作成しました (接続は問題ありません)。
問題は、「メイン クラス」を作成せずにエンティティを永続化する方法がわからないことです。
作成するエンティティごとにメイン クラスを実行する必要がありますか?
私はアプリケーションを開発しており、JPA エンティティ (注釈 + persistence.xml) の作成から始めました。次に、persistence.xml ファイルで、MySql データベースへの接続を作成しました (接続は問題ありません)。
問題は、「メイン クラス」を作成せずにエンティティを永続化する方法がわからないことです。
作成するエンティティごとにメイン クラスを実行する必要がありますか?
エンティティを永続化するには、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 インスタンスにアクセスする方法を見つけたらすぐに、エンティティを永続化するために別のクラスを用意する必要はありません。
しかし:
さらに、コントローラーは、トランザクションを適切に処理できる場所です。