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

Persistance des données Java Discussion :

[Debutant] generer les classes a partir d'une bdd


Sujet :

Persistance des données Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 84
    Points : 49
    Points
    49
    Par défaut [Debutant] generer les classes a partir d'une bdd
    Bonjour,

    je viens de télécharger Hibernate, et configurer le fichier hibernate.properties pour se connecter a MySQL.

    J'aimerai depuis la base de données génerer le fichier de mapping (xml) et enfin génerer les classes.

    Je sais que c'est possible mais je ne trouve pas les bonnes sources d'information.

    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    si tu utilises eclipse, tu as le plugin hibernate tools, qui permet de faire tout ça

    il y a aussi le plug in hibernate synchronizer, pour lequel tu pourras trouver des tutos sur ce site

    enfin si tu n'utilises pas eclipse, tu peux te servir d'hibernate tools via des taches ant

    à toi de voir ce que tu préfères, sachant que tu devras de toute manière éplucher la doc sur les mappings afin de savoir ce que tu fais
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  3. #3
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Middlegen te permets de travailler a partir d'une DB existante ..

    il te permet de créer les fichiers hbm de mapping, a partir desquels tu peux créer tes beans java (via hbm2java, par exemple, ..)

    edit : grilled ^^

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    oki merci de vos réponses...
    Je vais m orienter vers Hibernate Tools, je pensais qu'on pouvait se passer d'eclipse (et la solution avec ant ne me plait pas vu que je ne connais pas cet outil )


  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    suite a cette génération, il se pose un problème.

    La génération ne correspond pas a mes tables, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Table Tarticles
    idArticles -> clé primaire
    lien
    idInformationsCommunautaires -> créant la relation entre la table Tarticles et TInformationsCommunautaires
    Voici ce qu'il me génère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class TArticles implements java.io.Serializable {
     
    	private Integer idArticle;
    	private TInformationsCommunautaires TInformationsCommunautaires;
    	private String nom;
    	private String lien;
     
    .....
    Au lieu de me générer les relations par des id (ce qui correspond au schéma de mes tables, il me crée les relations par ces objets, ce qui est beaucoup plus lourd a manipuler)

    Je vous en parle car dans le cadre d'un autre projet, je n'avais pas eu ce problème (mais ce n'était pas moi qui avait fait la manipulation pour la génération).


    Avez vous des idées pour résoudre ce problème??

    Je vous en remercie d'avance.

  6. #6
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Ben, je ne peux que te conseiller d'oublier les outils qui te génère tes fichiers de mapping et de te les taper a la mano ^^

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    C'est une solution, mais a par cette anomalie tout est bien generer

    Je me permet d'insister, car comme je l'ai dit, lors d 'un ancien projet, l'équipe n'avait pas eu ce problème...

    Je continue mes investigations

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    Voici le mapping pour cette table

    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- Generated 5 mars 2008 17:04:35 by Hibernate Tools 3.2.0.CR1 -->
    <hibernate-mapping>
        <class name="model.TArticles" table="t_articles" catalog="opensource">
            <id name="idArticle" type="java.lang.Integer">
                <column name="ID_ARTICLE" />
                <generator class="identity" />
            </id>
            <many-to-one name="TInformationsCommunautaires" class="model.TInformationsCommunautaires" fetch="select">
                <column name="ID_INFORMATIONS_COM" not-null="true" />
            </many-to-one>
            <property name="nom" type="string">
                <column name="NOM" length="128" not-null="true" />
            </property>
            <property name="lien" type="string">
                <column name="LIEN" length="128" not-null="true" />
            </property>
        </class>
    </hibernate-mapping>
    Le problème vient de cette balise <many-to-one>!

  9. #9
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    par défaut hibernate mappe les associations en utilisant les objets, après tout c'est un outil de mapping relationnel-objet ^^

    tout ce que tu as a faire c'est de changer ces many-to-one en property...

    maintenant si tu n'as pas envie de tout changer manuellement tu peux aussi dégager les contraintes de clés étrangères quand tu génères le mapping...

    mais bon en quoi c'est lourd à utiliser des objets ? De plus ces associations sont très utiles, en particulier quand tu utilises l'API Criteria

    et comme l'a suggéré JoloKossovar, si tu n'utilises pas les associations, autant ne pas utiliser hibernate et tout faire à la main !
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

Discussions similaires

  1. Trouver les fichiers compilés à partir d'une classe Java
    Par Foogiz972 dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 04/09/2012, 10h55
  2. Réponses: 6
    Dernier message: 17/07/2008, 09h22
  3. Réponses: 2
    Dernier message: 11/07/2008, 15h12
  4. Generer les .hbm a partir des classes
    Par you98 dans le forum Hibernate
    Réponses: 1
    Dernier message: 28/08/2006, 17h44
  5. Réponses: 18
    Dernier message: 08/08/2005, 20h52

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