Bonjour; j'ai un souci et je sollicite votre aide. J'ai une petite application contenat une calsse JavaPersistenceUtil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
 
public class JavaPersistenceUtil {
	private static EntityManagerFactory emf;
	static {
	        emf = Persistence.createEntityManagerFactory("jpa");
	}
	public static EntityManagerFactory getEmf() {
	   return emf;
	}
}
et une classe test1
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
public class Test1 {
private static EntityManager em = null;
 
public static void main(String[] args) throws Exception{
       	// Affichage des données
		dump();
 
//		 test1
		log("test1");
		test1();
 
//		 dump
		dump();
 
//		 fin contexte de persistance
		if (em.isOpen())
			em.close();
 
	}
 
private static EntityManager getEntityManager() {
		if (em == null || !em.isOpen()) {
			em = JavaPersistenceUtil.getEmf().createEntityManager();		
		}
		return em;
	}
 
public static void test1() throws ParseException {
		// contexte de persistance
		EntityManager em = getEntityManager();
		// création personnes
		a1 = new Activite( 0,"Activité 4");
		a2 = new Activite(0,"Activité 5");
		// début transaction
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		// persistance des personnes
		em.persist(a1);
		em.persist(a2);
		// fin transaction
		tx.commit();
		// on affiche la table
		dump();
	}
Mon problème est que chaque fois que j'execute Test1 il vide la base avant de faire des insertions.
Après recheche je me suis rendu compte que c'est lors de l'execution de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
em = JavaPersistenceUtil.getEmf().createEntityManager();
c'est à dire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
emf = Persistence.createEntityManagerFactory("jpa");
Apparemment il execute cette tâche chaque fois qu'il est lancé. Comment faire pour ne plus qu'il l'execute car il est dit que l'application doit executer cette instruction une seule dans sa vie ou comment faire pour ne plus que la base soit vider en executant cette instruction
Merci