2009-12-07 3 views
1

Ok, nouveau pour nhibernate et je travaille sur un projet qui l'a déjà implémenté. Scenerio: Une classe (Person) a deux sous-classes jointes (RoleA et RoleB).Utiliser deux sous-classes jointes dans nhibernate

Ce dont j'ai besoin, c'est qu'une personne donnée puisse être à la fois dans RoleA et RoleB. Comment, quand on donne une personne déjà créée et dans le rôle A, puis-je les faire aussi dans RoleB tout en maintenant les relations avec RoleA?

Répondre

0

Donc, vous avez quelque chose comme ce qui suit (avec les élèves et enseignants qui prennent la place de RoleA et RoleB):

<class name="Person" table="Persons" > 
    <id name="Id" column="PersonID"> 
    <generator class="native" /> 
    </id> 
    <property name="Name" column="Name" not-null="true" /> 

    <joined-subclass name="Student" table="Students"> 
    <key column="PersonID" /> 
    <property name="Grade" column="Grade" not-null="true" /> 
    </joined-subclass> 

    <joined-subclass name="Teacher" table="Teachers"> 
    <key column="PersonID" /> 
    <property name="ClassName" column="ClassName" not-null="true" /> 
    </joined-subclass> 
</class> 

Si tel est le cas, votre meilleur pari est d'utiliser un biunivoque une cartographie pour accomplir la même chose. Voici une bonne référence: http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-onetoone

Cette personne avait un problème similaire que vous, et a fini par aller avec l'option one-to-one mapping: http://groups.google.com/group/nhusers/browse_thread/thread/1d83e0cd3c2bf58f

Questions connexes