[Entity Manager Factory] Pourquoi ce code pause un problème ?
Bonjour à tous,
Le code suivant permet de créer le contexte de persistence (Entity manager) au sein des classes d'ordre DAO :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public boolean create(Event anEvent){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("mdc1");
EntityManager manager = factory.createEntityManager();
EntityTransaction transaction = manager.getTransaction();
transaction.begin();
manager.persist(anEvent);
transaction.commit();
manager.close();
factory.close();
return true;
}
public Event read(Integer id){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("mdc1");
EntityManager manager = factory.createEntityManager();
EntityTransaction transaction = manager.getTransaction();
transaction.begin();
Event anEvent = manager.find(Event.class, id);
transaction.commit();
manager.close();
factory.close();
return anEvent;
} |
Quand j'exécute les deux méthodes create() et read() dans la même classe Exemple.java, ça génère des exceptions. Pourquoi ? Que faut-il faire pour pallier à ce problème ?
J'ai trouvé qu'il faut utiliser une classe de type singleton qui se charge de la création de l'entityManager, mais je comprends pas pourquoi il faut faire ça ?
Quelqu'un peut m'expliquer SVP.
Merci.