Question

J'ai ce graphe d'objet, je veux mapper:

    Compte
  • abstrait (nom d'utilisateur, mot de passe, ...)
    • client abstrait (panier, commandes, rôles)
      • Client individuel (données utilisateur)
      • Client d'entreprise (données utilisateur différentes, données d'entreprise)
    • Administrateur (adminroles)

Comment cela peut-il être mappé contre une seule table? (Je sais comment faire cela avec une hiérarchie d'entités qui n'a qu'un niveau de profondeur, comme dans la documentation, mais c'est différent.)

Quelqu'un a une idée? J'ai demandé la même chose dans http://groups.google.com/group/nhusers/ browse_frm / thread / 7a85cba0048c18d8? hl = en , mais n'ont pas encore reçu de réponse utile.

Était-ce utile?

La solution 2

Les sous-classes imbriquées sont contre le schéma xml, donc je suppose que cela ne fonctionnera pas. Je devrais probablement aussi imbriquer la déclaration de discriminateur, qui semble aussi être un fiasco.

et le mapper à plat ... Je passe un discriminateur pour une classe abstraite, qui ne peut jamais être utilisé car une classe abstraite ne peut pas être instanciée. semble mal aussi.

mais vous avez raison, je vais l'essayer quelque temps. Pour le moment, il me semble plus judicieux de laisser le client avoir un compte au lieu d’en être un.

merci!

Autres conseils

D'après ce que je vois, cela ne devrait pas être différent de la hiérarchie à un niveau. essayez ceci:

<hibernate-mapping> 
<class                                                     
    name="Account" 
    table="..." > 
    <property .../> 
        ... 
    <subclass                                              
        name="Customer" > 
        <property ... "/> 
        ... 
    </subclass> 

    <subclass                                              
        name="IndividualCustomer" > 
        <property ... "/> 
        ... 
    </subclass> 
    ... 
</class> 

Je n'ai pas NHibernate ici pour le vérifier, mais il semble que cela devrait fonctionner. Vous voudrez peut-être aussi essayer d'imbriquer des éléments de sous-classes si ce n'est pas le cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top