Je suis nouveau à NHibernate et l'ai trouvé extrêmement intéressant. J'ai essayé de persister des objets dans une table de mappage (la table qui casse de nombreuses relations dans la conception de base de données relationnelle) mais qui n'a pas été capable de le faire jusqu'à présent. Je suis capable de récupérer des données de la table de mappage en utilisant mon mappage hibernate actuel, cependant.Aide avec NHibernate Insérer/Mettre à jour
Voici ce que ma base de données ressemble à:
Groupes (groupId, groupName) rapports (reportId, REPORTNAME) GroupReports (groupeId, reportId)
relations très typiques et simples en termes de modélisation des données .
Je sais que cette question a été posée plusieurs fois et j'en ai lu beaucoup. Croyez-moi, j'ai vraiment fait.
Voici ma correspondance pour la classe des entités du Groupe:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DataTransfer" namespace="DataTransfer">
<class name="DataTransfer.Group, DataTransfer" table="GROUPS">
<id name="GroupId">
<column name="groupId" sql-type="int" not-null="true"/>
<generator class="native"/>
</id>
<property name="GroupName" column="groupName" type ="string" length="150" not-null="true"/>
<bag name="Reports" cascade="none" inverse="true">
<key column="groupId"/>
<many-to-many column="reportId" class="DataTransfer.Report, DataTransfer"/>
</bag>
</class>
</hibernate-mapping>
Et ma correspondance pour la classe entité rapport aime ci-dessous:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DataTransfer" namespace="DataTransfer">
<class name="DataTransfer.Report, DataTransfer" table="REPORTS" >
<id name="ReportId" column="reportId" type="int" unsaved-value="0">
<generator class="native"/>
</id>
<property name = "ReportName" column="reportName" type="string" length="250" not-null="true"/>
<bag name="MappedGroups" table="GroupReports" cascade="all" inverse="false" lazy="true">
<key column="reportId"/>
<many-to-many class="DataTransfer.Group, DataTransfer" column="groupId" />
</bag>
</class>
</hibernate-mapping>
Selon ce que je lis, ces applications doivent permettre moi à la fois récupérer et conserver les données de mappage de la table des associés GroupReports. Mon code de test unitaire ne révèle que l'instruction SQL sélectionnée, pas d'insertions dans la table de mappage.
Étant donné mes mappages, que devrait-on faire pour conserver les données de mappage?
(notez l'OP a ajouté une mise à jour re cette réponse) –