Hallo zusammen
Nach langer Zeit stelle ich auch mal wieder eine Frage
Ich habe folgende Klasse
*/
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.TypedQuery;
public class Datenbankzugriff implements Datenzugriff {
/* Konstante fuer Datenbank */
public static final String DATABASE = "jdbc:ucanaccess://**********";
/* Konstruktor */
Datenbankzugriff() {
}
/* Systeme einlesen */
@Override
public List<System> readSystems() {
/* ArrayList fuer Systeme */
List<System> systems = new ArrayList<System>();
/* EntityManager erzeugen */
EntityManagerFactory emf = Persistence.createEntityManagerFactory("schnittstellenDatenbankPU");
EntityManager em = emf.createEntityManager();
/* Systeme in ArrayList einlesen */
TypedQuery<System> query = em.createQuery("SELECT s FROM Karte_Systeme s", System.class);
List<System> results = query.getResultList();
systems = results;
/* EntityManager schließen */
em.close();
emf.close();
return systems;
}
/* Schnittstellen einlesen */
@Override
public List<SingleInterface> readInterfaces() {
/* ArrayList fuer Schnittstellen */
List<SingleInterface> interfaces = new ArrayList<SingleInterface>();
/* EntityManager erzeugen */
EntityManagerFactory emf = Persistence.createEntityManagerFactory("schnittstellenDatenbankPU");
EntityManager em = emf.createEntityManager();
/* Schnittstellen in ArrayList einlesen */
TypedQuery<SingleInterface> query = em.createQuery("SELECT i FROM SingleInterface i",
SingleInterface.class);
List<SingleInterface> results = query.getResultList();
interfaces = results;
/* EntityManager schließen */
em.close();
emf.close();
return interfaces;
}
}```
Nun eröffne ich ja in jeder Methode einen neuen Entity Manager und schließe den jeweiligen in der entsprechenden Methode.
Gibt es eine Möglichkeit, dass ich nur einen Entity Manager verwende für die ganze Klasse? Und wenn ja, an welcher Stelle eröffne ich ihn und schließe ihn wieder?
LG, droid :)