Question

Supposons que je possède une classe "Utilisateur" et qu'elle "" a". une propriété de type "Profil". Comment configurer mes mappages pour générer le schéma et créer les deux tables dans la base de données?

Était-ce utile?

La solution

<many-to-one/>

Autres conseils

Soit dit en passant, si vous n'êtes pas un grand fan des scripts de mappages d'hibernation (ce que je ne suis pas), vous avez deux autres options.

Castle ActiveRecord est une alternative - c'est une couche au-dessus de NHibernate qui ( entre autres choses) vous permet de déclarer vos relations en utilisant des attributs dans vos classes et propriétés.

Et NHibernate courant est un autre exemple: il vous permet de configurer vos classes par programmation. et les relations.

Les deux sont une grande amélioration par rapport à l'écriture manuelle de votre mapping XML!

Si vous vous interrogez sur le mappage, vous pouvez utiliser la jointure comme indiqué ci-dessous. remarque: vous devez évidemment ajouter des attributs supplémentaires pour répondre aux besoins de votre application.

   <?xml version="1.0" encoding="utf-8" ?>
   <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"    namespace="MyNamespace" assembly="MyAssembly"    default-lazy="true">  
   <class name="User" table="User">    
   <id name="Id" column="user_id" unsaved-value="0">      
   <generator class="native" />    
   </id>    
   <property name="Profile" column="profile" />  
   </class>
   </hibernate-mapping>

   <?xml version="1.0" encoding="utf-8" ?>
   <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"    namespace="MyNamespace" assembly="MyAssembly"    default-lazy="true">  
   <class name="Profile" table="Profile">    
   <id name="Id" column="profile_id" unsaved-value="0">      
   <generator class="native" />    
   </id>    
   <property name="Profile" column="profile" />    
   </class>
   </hibernate-mapping>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top