2009-10-08 5 views
0

Très bien, j'ai une petite question. Je travaille actuellement avec une base de données existante, donc je ne peux pas changer beaucoup. La base de données tourne autour d'un seul type, l'entité. Toutes les autres données pertinentes (à l'exception des listes personnalisables, etc.) en «héritent».Hibernate mappings: Scinder le fichier

Je suis mappant ceci avec une approche de sous-classe jointe, qui fonctionne bien. Le problème est que mon fichier de mapping atteint des proportions hideuses. Je voudrais diviser le fichier en plusieurs fichiers distincts, mais je ne suis pas sûr si cela est possible et comment aborder ce problème. J'ai lu les documents d'Hibernate sur le site officiel, mais je n'ai rien trouvé.

Pour clarifier, correspondances ressembler à ceci:

<class name="..." table="..."> 
    <id ...> 
      <generator class="org.hibernate.id.TableHiLoGenerator"> 
        <param name="table">...</param> 
        <param name="column">...</param> 
      </generator> 
    </id> 
    <property name="somethingCommon" /> 
    <joined-subclass name="class_1"> 
     ... 
     ... 
    </joined-subclass> 
    <joined-subclass name="class_2"> 
     ... 
     ... 
    </joined-subclass> 
    ... 
    <joined-subclass name="class_n"> 
     ... 
     ... 
    </joined-subclass> 
</class> 

Ce que je voudrais être en mesure de faire est de mettre les bits décloisonnée sous-classe dans des fichiers séparés, comme je le ferais dans le code (classes séparées - > fichiers séparés). Est-ce possible en utilisant seulement des mappages, ou peut-être en manipulant les mappages lorsque je les charge?

(Note: mise en veille prolongée étiquetée/NHibernate, comme je ne pense pas que ce soit spécifique soit saveur)

Répondre

4

Je crois que vous pouvez utiliser "étend" par exemple:

<hibernate-mapping> 
<joined-subclass name="DomesticCat" extends="Cat"> 
     ... 
</joined-subclass> 

séparer les sous-classes jointes dans des fichiers séparés.

+0

Oui, c'est tout! Merci, c'était l'un des derniers ennuis dans le projet. –