オブジェクトをクエリしたり、削除/作成したりするときに、エンティティ マネージャーの適切な使用法を理解するのに苦労しています。現在、データベーストランザクションに対して、次のように新しいエンティティマネージャーを開閉するサービスメソッドがいくつかあります。
public static Long getCountApplicants(String active){
EntityManager entityManager = factory.createEntityManager();
long value = (Long) entityManager.createQuery("select count(distinct a) from Applicant a where a.active = " +active).getSingleResult();
System.out.println("get count app query");
entityManager.close();
return value;
}
ユニットを定義する persistence.xml ファイルを含む Java EE アプリがあるのに、ファクトリから 1 つだけを宣言して、アプリの存続期間全体でそれを使用できないのはなぜですか? これらのオブジェクトを 1 つだけ使用した場合、パフォーマンスやメモリ リークの問題はありますか?
アップデート:
次のスタック、Spring Framework/JPA Eclipselink を使用しています。