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

Hibernate Java Discussion :

Persistance Wildfly mysql: Aucune table ne se crée


Sujet :

Hibernate Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Persistance Wildfly mysql: Aucune table ne se crée
    Bonjour,

    Avant tout, merci d'avance pour votre aide. Je suis des cours de systèmes distribués (client, serveur). Je préviens aussi que c'est mon premier sujet, donc il risque d'y avoir des modifications pour faire afficher un code correct esthétiquement.

    J'étudie actuellement la persistance des objets avec Hibernate sous Eclipse, avec WildFly (version 14). Pour cela, j'ai créé sur PHPMyAdmin une base de données que j'ai appelée "cm30".

    Cependant, une fois avoir mis à jour le fichier persistence.xml, et relancé WildFly, je suis censé obtenir la nouvelle table créée dans la classe "Etudiant".
    Mais cette table ne s'affiche pas. Rien ne s'affiche, la base de données "cm30" n'a eu aucun changement, et reste vide.

    Donc le problème vient bien de ce fichier persistence selon moi, car la BDD communique bien avec WildFly...

    Voilà le code en question :

    Code du fichier persistence.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
        <persistence-unit name="Projet" transaction-type="JTA">
            <jta-data-source>java:/cm30</jta-data-source>
            <class>metier.entities.Etudiant</class>
            <properties>
                <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
                </properties>
        </persistence-unit>
    </persistence>
    Et voilà le code de ma classe EtudiantEjbImpl :

    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
    46
    package metier.entities;
     
    import java.util.List;
     
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import javax.persistence.PersistenceUnit;
    import javax.persistence.Query;
     
     
     
     
    @Stateless
    public class EtudiantEjbImpl implements EtudiantRemote, EtudiantLocal{
     
     
        @PersistenceContext (unitName="Projet")
        //@PersistenceUnit(unitName="Projet")  //Facultatif
        private EntityManager em;   //déclaration d'un attribut Entity manager
     
     
        @Override
        public Etudiant addEtudiant(String nom, String prenom) {
     
    Etudiant e= new Etudiant(nom,prenom);  
            em.persist(e);   //Instruction permettant d'ajouter l'étudiant
            return e;
        }
     
        @Override
        public Etudiant getEtudiant(int numero) {
            Etudiant e=em.find(Etudiant.class,numero);
            if(e==null) throw new RuntimeException("Etudiant n'existe pas");    //Exception et pas de Syso car on est à distance
            return e;
        }
     
     
        @Override
        public List<Etudiant> listeEtudiants() {
            //hql 
            Query req = em.createNamedQuery("select e from Etudiant");  //Ici on utilise le nom de la table par défaut, c'est a dire le nom de la classe
            return req.getResultList();
        }
     
    }
    Et enfin le code de ma classe Etudiant :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    package metier.entities;
     
    import java.io.Serializable;
    import java.lang.String;
    import javax.persistence.*;
     
    /**
     * Entity implementation class for Entity: Etudiant
     *
     */
    @Entity
     
    @Table(name="personne")  
     
    public class Etudiant implements Serializable {
     
     
        @Id   //Clé primaire
        @GeneratedValue(strategy=GenerationType.IDENTITY)   //Clé incrémenté de manière automatique. Grace à cette annotation. Le premier aura le numéro 1, le deuxieme 2  etc..
        private int numero;
        private String nom;
        private String prenom;
        private static final long serialVersionUID = 1L;
     
        public Etudiant() {
            super();
        }  
        public Etudiant(String nom, String prenom) {
            this.nom=nom;
            this.prenom=prenom;
        }
        public int getNumero() {
            return this.numero;
        }
     
        public void setNumero(int numero) {
            this.numero = numero;
        }  
        public String getNom() {
            return this.nom;
        }
     
        public void setNom(String nom) {
            this.nom = nom;
        }  
        public String getPrenom() {
            return this.prenom;
        }
     
        public void setPrenom(String prenom) {
            this.prenom = prenom;
        }
     
    }

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Personne pour m'aider?

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    A moins d'avoir modifié la configuration de wildfly, l'implémentation de référence de JPA est Hibernate.
    Hors, je ne sais pas à quoi fait référence "javax.persistence.schema-generation.database.action" mais avec Hibernate, ça devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <property name="hibernate.hbm2ddl.auto" value="create-drop"/> 
     
    valeurs possibles : validate | update | create | create-drop
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    En fait c'était généré automatiquement dans le fichier persistence lorsque je modifiais le "Schema Generation".

    Nom : aaa.jpg
Affichages : 428
Taille : 109,8 Ko


    Je vais tester ta solution dès que je rentre !

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Concernant ta solution, cela n'a pas fonctionné malheureusement.
    Nom : bbb.jpg
Affichages : 427
Taille : 52,3 Ko



    Au niveau du dossier WildFly, le dossier mysql que j'ai inséré contenait deux fichiers : module.xml et mysql-connector-java-5.1.33.jar .

    Au niveau du fichier module, voilà ce qu'il contenait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.1" name="com.mysql">
        <resources>
            <resource-root path="mysql-connector-java-5.1.33.jar"/>             
        </resources>
        <dependencies>
            <module name="javax.api"/>
            <module name="javax.transaction.api"/>
        </dependencies>
    </module>
    Est-ce que cela est problématique? Car là je vois que le nom du module est javax, que dois-je mettre pour que ce soit du Hibernate?

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    UP


    Need your help please !

Discussions similaires

  1. [SGBD] pb mySQL ouverture table
    Par jmjmjm dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/05/2006, 13h55
  2. Réponses: 6
    Dernier message: 31/03/2006, 17h05
  3. Mysql + ajout table
    Par Amenos dans le forum Débuter
    Réponses: 4
    Dernier message: 20/03/2006, 14h00
  4. [mysql] create table
    Par noOneIsInnocent dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 02/03/2006, 10h57
  5. Réponses: 3
    Dernier message: 21/10/2005, 14h56

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