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 :

[Débutant] Hibernate "Run schemaExporte" ne fonctionne pas?


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2004
    Messages : 204
    Par défaut [Débutant] Hibernate "Run schemaExporte" ne fonctionne pas?
    Bonjour à toutes et à tous,

    Après une formation de quelques jours à Hibernate, je me suis enfin lancé dans un développement afin de me lancer (enfin) dans le grand bain Java

    Je vous expose mon soucis: je développe sous Eclipse 3.2.0 M20070212-1330 (avec une mise à jour des logiciels effectués via celui-ci) une petite appli stantalone avec hsqldb 1.8.0 derrière et hibernate 3.2
    j'ai intégré les package d'hibernate (liaison externe) et intégré le package hsqldb.jar dans un répertoire lib de mon projet

    j'ai codé 2 pauvres petite classes comme suit:

    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
     
    package metier;
     
    import java.util.List;
     
    public class Ligue {
     
    	private Integer id;
     
    	private Integer numero;
     
    	private String nom;
     
    	private List<Club> clubs;
     
    	// constructeur 
    	public Ligue() {
     
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public Integer getNumero() {
    		return numero;
    	}
     
    	public void setNumero(Integer numero) {
    		this.numero = numero;
    	}
     
    	public Integer getId() {
    		return id;
    	}
     
    	public void setId(Integer id) {
    		this.id = id;
    	}
     
    	public List<Club> getClubs() {
    		return clubs;
    	}
     
    	public void setClubs(List<Club> clubs) {
    		this.clubs = clubs;
    	}
     
    }
    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
     
    package metier;
     
    public class Club {
     
    	private Integer id;
     
    	private Integer numero;
     
    	private String nom;
     
    	private Ligue ligue;
     
    	// constructeur
    	public Club() {
     
    	}
     
    	public Ligue getLigue() {
    		return ligue;
    	}
     
    	public void setLigue(Ligue ligue) {
    		this.ligue = ligue;
    	}
     
    	public Integer getId() {
    		return id;
    	}
     
    	public void setId(Integer id) {
    		this.id = id;
    	}
     
    	public int getNumero() {
    		return numero;
    	}
     
    	public void setNumero(Integer numero) {
    		this.numero = numero;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    }
    codé le mapping d'Hibernate comme suit:
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
    		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    		"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <!-- Infos HSQL : http://baptiste-wicht.developpez.com/tutoriel/java/hsql/ -->
    <hibernate-configuration>
        <session-factory>
            <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
            <property name="hibernate.connection.url">jdbc:hsqldb:data/bdd</property>
            <property name="hibernate.connection.username">sa</property>
    		<property name="hibernate.connection.password"></property>
            <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
            <property name="show_sql">true</property>
            <!-- fichier(s) de mapping à utiliser -->
            <mapping resource="metier/Ligue.hbm.xml"/>
            <mapping resource="metier/Club.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="metier">
     
      <class name="Ligue" table="LIGUES">
          <id name="id" column="ID">
             <generator class="increment"/>
          </id>
          <property name="numero" type="string" column="NUMERO"/>
          <property name="nom" type="string" column="NOM"/>
          <!-- Une ligue a des clubs affiliés -->
          <list name="clubs" cascade="all" inverse="true">
             <key column="ID_LIGUE"/>
             <list-index column="IDX"/>
             <one-to-many class="Club"/>
          </list>
      </class>
     
    </hibernate-mapping>
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="metier">
     
      <class name="Club" table="CLUBS">
          <id name="id" column="ID">
             <generator class="increment"/>
          </id>
          <property name="numero" type="integer" column="NUMERO"/>
          <property name="nom" type="string" column="NOM"/>
          <!-- Un club fait parti d'une Ligue -->
          <many-to-one name="ligue" column="ID_LIGUE" class="Ligue" not-null="true"/>
      </class>
     
    </hibernate-mapping>
    et j'ai ensuite vérifié si cette aventure démarrait sur de bonnes bases via la vue "Hibernate Configurations", j'ai ainsi pu voir que la Configuration était ok, la Session Factory itou, la Database aussi (après avoir lancé le DataBaseManager bien avant ces manips)

    et j'ai enfin voulu réalisé un "Run SchemaExport" de cette configuration afin qu'Hibernate me créé et me dévoile les instructions SQL pour la génération des tables LIGUES et CLUBS... or rien ne se passe, ni création de table, ni plantage remonté par une quelconque exception via la console... bref ça fait plus d'une demi journée que je galère en cherchant un peu partout sur le net et je ne trouve pas de cas similaire au mien donc j'en appelle à de bonnes âmes pour me dépatouiller de ma mouise profonde où je suis bêtement plongé

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2004
    Messages : 204
    Par défaut
    avancé de mes recherches, dans le fichier de mapping (le principal) si je paramètre comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.connection.url">jdbc:hsqldb:data/bdd</property>
    l'exportation du schema ne produit rien du tout, par contre si je rajoute un slash devant le répertoire de la base comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.connection.url">jdbc:hsqldb:/data/bdd</property>
    l'exportation du schema fonctionne mais le répertoire data se trouve à l'extérieur de mon projet, plus précisément à la racine du disque dur (je précise que je suis sous Windows XP Pro)

    j'ai loupé quelque chose mais je ne vois pas quoi

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2004
    Messages : 204
    Par défaut
    je m'auto-réponds au cas où...

    donc j'ai abandonné dans un premier temps la recherche de mon problème de "fixation de la localisation" de la base mais visiblement je rencontrais aprés quelques lignes de code un soucis de persistence des données aprés fermeture de l'appli mais de fil en aiguille via le forum j'ai trouvé une réponse à ce problème et à mon problème initial (http://www.developpez.net/forums/sho...d.php?t=235103) que je vais tester demain et si ça fonctionne le sujet sera noté comme résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54

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