すべての関数でEntityManagerFactoryを作成して閉じる必要がありますか? 、またはアプリケーションの起動時に作成する必要がありますか?どうすればそれを達成できますか?例えばすべての関数のEntityManagerFactory?
:
私は2つの機能があります:アイテムのみを取得する機能が名前
private List<SomeItems> getItems() {
List<SomeItems> resultList = new ArrayList<SomeItems>();
entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
TypedQuery<SomeItems> query = entityManager.createQuery(
"select n from SomeItems n", SomeItems.class);
resultList = query.getResultList();
entityManager.getTransaction().commit();
entityManager.close();
entityManagerFactory.close();
return resultList;
}
:
private List<String> getItemsName() {
List<String> resultList = new ArrayList<String>();
entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
TypedQuery<String> query = entityManager.createQuery(
"select n.name from SomeItems n", String.class);
resultList = query.getResultList();
entityManager.getTransaction().commit();
entityManager.close();
entityManagerFactory.close();
return resultList;
}
どのようにすべきデータベースからオブジェクトを取得し
機能私はそれを改善する?
JPAプロバイダのすべてのJPAドキュメントは、EMが安価である一方、EMFは作成するのに費用がかかると言及しています。あなたのプロバイダのドキュメントがそのことを言っていない場合、それらに問題を提起することを提案してください –