Bonjour; j'ai un souci et je sollicite votre aide. J'ai une petite application contenat une calsse JavaPersistenceUtil
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 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; } }
Mon problème est que chaque fois que j'execute Test1 il vide la base avant de faire des insertions.
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(); }
Après recheche je me suis rendu compte que c'est lors de l'execution de
c'est à dire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 em = JavaPersistenceUtil.getEmf().createEntityManager();
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 emf = Persistence.createEntityManagerFactory("jpa");
Merci
Partager