Bonjour à tous,

Le code suivant permet de créer le contexte de persistence (Entity manager) au sein des classes d'ordre DAO :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.