IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

create EntityManager Factory


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut create EntityManager Factory
    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

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    C'est configurable dans persistence.xml, avec la propriété hbm2ddl.auto.
    Tu dois l'avoir en create. change là en update par exemple.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    je pourrais tjrs faire des insertions en la changeant en update?
    Il ne vide plus la base de données mais il vide la table dans laquelle je fais des insertions.
    Ce que je veux c'est qu'à la connection de la base de données aucun opérations de s'effectue. Par la suite l'utilisateur decidera s'il doit faire des insertions ou modifications ou suppression

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    Je voudrais me connecter sans action sur la base par la suite pouvoir faire tout ce que je veux modif,maj et suppression

Discussions similaires

  1. Exception "Cannot create PoolableConnection Factory" avec MySQL
    Par d.ayuk33 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 20/01/2012, 15h09
  2. Réponses: 0
    Dernier message: 06/01/2010, 22h05
  3. Réponses: 3
    Dernier message: 05/08/2008, 15h24
  4. [EJBQL] An exception occured while creating a query in EntityManager
    Par Asmod_D dans le forum Java EE
    Réponses: 3
    Dernier message: 30/01/2008, 10h39
  5. Réponses: 2
    Dernier message: 29/01/2008, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo