Partage
  • Partager sur Facebook
  • Partager sur Twitter

Hibernate et héritage

    6 décembre 2008 à 19:35:31

    Bonjour à tous,

    J'ai deux classes, l'une hérité de l'autre. J'ai mappé chaque classe dans un fichier .xml.
    Tout fonctionne mais une chose me géne:
    Lorsque je fais une requête avec un FROM maClasseMere, il me charge aussi des éléments de la classe fille. Comment faire pour éviter ceci?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      6 décembre 2008 à 22:58:06

      Quelle stratégie d'héritage utilises tu?
      • Partager sur Facebook
      • Partager sur Twitter
        6 décembre 2008 à 23:24:07

        D'après la doc d'hibernate j'utilise:
        9.1.6. Une table par classe concrète, en utilisant le polymorphisme implicite
        • Partager sur Facebook
        • Partager sur Twitter
          7 décembre 2008 à 1:14:46

          Il me semble que tu ne peux pas l'éviter, mais je débute en hibernate...

          Puis si tu charges un objet "annuaire", il est normale qu'il soit rechargé dans l'état dans lequel il était enregistré, cad plein.

          Non ?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            7 décembre 2008 à 9:10:16

            Ok et peux tu poster le mapping de ces 2 classes?
            • Partager sur Facebook
            • Partager sur Twitter
              7 décembre 2008 à 10:27:01

              <?xml version="1.0" encoding="UTF-8"?>
              <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
              <hibernate-mapping>

              <class name="metier.modele.Categorie" table="Categorie" lazy="false">
              <id name="id" type="integer" column="id">
              <generator class="increment"/>
              </id>
              <property name="nom" type="string" column="nom"/>
              <set name="questions" lazy="false" cascade="all">
              <key column="categorie" />
              <one-to-many class="metier.modele.Question" />
              </set>
              </class>

              </hibernate-mapping>



              <?xml version="1.0" encoding="UTF-8"?>
              <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
              <hibernate-mapping>

              <class name="metier.modele.CategorieProposee" table="CategorieProposee" lazy="false">
              <id name="id" type="integer" column="id">
              <generator class="increment"/>
              </id>
              <property name="nom" type="string" column="nom"/>
              <property name="createur" type="integer" column="idJoueur"/>
              </class>

              </hibernate-mapping>
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                7 décembre 2008 à 14:32:31

                tu n'as pas précisé dans ton mapping que tu utilisais l'héritage:

                <map-superclass class="metier.modele.Categorie">
                ...
                </map-superclass>
                



                • Partager sur Facebook
                • Partager sur Twitter
                  7 décembre 2008 à 14:54:31

                  Et bien ce n'est pas nécessaire d'après la doc. En plus l'héritage fonctionne bien, le seul problème c'est que je veux pas charger des CategorieProposee quand je charge des Categorie.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Hibernate et héritage

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown