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 :

Generer une table d'une facon dynamique avec hibernate


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Par défaut Generer une table d'une facon dynamique avec hibernate
    Slt;
    je suis un debutant dans le domaine de hibernate et j2ee;
    j'arrive dans une application web dans un stade ou je doit generer d'une facon dynamique des table au niveau sql server 2000;
    jai lu un peu la doc de hibernate en ce qui concerne ce point mais jai pas pu savoir gran chose ;
    jai lu que je doit travailler avec schemaExport mais comment faire ,je ne sais pas;
    si qlq un peut me guider vers la solution de mon prob ,
    en me donnant comment faire pour charger mon fichier de maping Xml et de creer la table correspondante ,
    c sera tres gentil de sa part
    et merci en tous cas

  2. #2
    Membre éclairé
    Profil pro
    Abcde
    Inscrit en
    Août 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Abcde
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2004
    Messages : 59
    Par défaut
    Citation Envoyé par oughlad
    Slt;
    je suis un debutant dans le domaine de hibernate et j2ee;
    j'arrive dans une application web dans un stade ou je doit generer d'une facon dynamique des table au niveau sql server 2000;
    jai lu un peu la doc de hibernate en ce qui concerne ce point mais jai pas pu savoir gran chose ;
    jai lu que je doit travailler avec schemaExport mais comment faire ,je ne sais pas;
    si qlq un peut me guider vers la solution de mon prob ,
    en me donnant comment faire pour charger mon fichier de maping Xml et de creer la table correspondante ,
    c sera tres gentil de sa part
    et merci en tous cas
    Je suppose que tu as écris tes HBM.

    tu dois vouloir dire générer le script (ddl) de création et l'executer automatiquement sur la base cible.
    Il existe hibernate tools, tu le télécharge (c'est un plugin eclipse), tu prends les jars contenu dans 'plugins\org.hibernate.eclipse_3.2.0.beta6\lib\tools', tu as aussi besoin des jars hibernate....

    ensuite tu créé un script ant avec une tache du genre :

    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
     
    <taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="classpath"/>
     
    	<target name="all" depends="clean"  description="Generation">		
    		<hibernatetool >
    			<configuration propertyFile="hibernate.properties"  >  
    		       	<fileset dir="${src-dir}" id="id">
    		            <include name="**/maconf.hbm.xml"/> 
    		        </fileset>
    		   </configuration> 
    		   <hbm2ddl export="false"  
    		   			console="true" 
    		   			drop="false" 
    		   			format="true"
    		   			outputfilename="schema-export.sql" 
    		   			destdir="${target-dir}" />
    			<hbm2java 
    			 jdk5="false" 
    			 ejb3="false" 
    			 destdir="${target-dir}/src"	
    			/>
    			<hbm2dao destdir="${target-dir}/src" />
    			<hbm2doc destdir="${target-dir}/doc" />
     
    		</hibernatetool>
    	</target>
    regarde la doc sur le site officielle pour les options.

    @+

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Par défaut
    Merci pour votre reponse;
    premierement jai pas de grandes connaissances en ce qui concerne Ant
    et jai vu dans la doc de hibernate que c possible avec la programmation de generer la table dans la base de données .
    pour faciliter les choses et pour me comprendre bien , jai qlq questions,
    je travaille avant avec hibernate (consultation ,ajout ....) et jai pas de problem avec ,
    mais dans un certain moment je veux apartir de la base de données extraire des informations qui seront les champs de la tables que je doit creer d'une facon dynamique ,
    alors je cree un fichier xml qui sera le map de ma nouvelle table,
    mais ensuite qest ce q je doit faire ?
    si qlq un peu me donner les principales etapes pour executer cette generation de table et merci en tout cas

  4. #4
    Membre éclairé
    Profil pro
    Abcde
    Inscrit en
    Août 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Abcde
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2004
    Messages : 59
    Par défaut
    Citation Envoyé par oughlad
    Merci pour votre reponse;
    premierement jai pas de grandes connaissances en ce qui concerne Ant
    et jai vu dans la doc de hibernate que c possible avec la programmation de generer la table dans la base de données .
    pour faciliter les choses et pour me comprendre bien , jai qlq questions,
    je travaille avant avec hibernate (consultation ,ajout ....) et jai pas de problem avec ,
    mais dans un certain moment je veux apartir de la base de données extraire des informations qui seront les champs de la tables que je doit creer d'une facon dynamique ,
    alors je cree un fichier xml qui sera le map de ma nouvelle table,
    mais ensuite qest ce q je doit faire ?
    si qlq un peu me donner les principales etapes pour executer cette generation de table et merci en tout cas
    Il faudrai que tu relises la doc Hibernate, ca a l'air un peu confus. http://hibernate.org/5.html

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Par défaut
    Tu peux générer tes tables au lancement au chargement de ta sessionFactory, suffit de rajouter ça dans le fichier de config hibernate :

    <!-- Supprime et re-créé la base à partir des mappings au lancement -->
    <property name="hibernate.hbm2ddl.auto">create</property>

    Ou tu peux aussi remplacer create par update...
    Mais pour la génération dynamique, je vois pas trop !
    Si tu trouves, dis-le !!!! Ca peut être pratqiue de le savoir.

    J'ai trouver dans la doc que tu peux appeler ton export dans ton appli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Configuration cfg = ....;
    new SchemaExport(cfg).create(false, true);
    Alors il prendra (je pense) tes mappings pour générer les tables, et tu peux ajouter un fichier sql pour remplir tes tables, et en déclarer des nouvelles, tu peux rajouter la dynamiciter de tes créations en manipulant ce fichier, c'est pas très propre, mais ça peut marcher.

    T'as trouvé une solution plus simple ?

  6. #6
    NoP
    NoP est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 35
    Par défaut
    Attention create efface et recréé ta base a chaque démarrage de l'appli. Il vaut mieux utiliser update qui créé ou mets à jours en fonction du besoin.

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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