Impossible d'obtenir NHibernate pour générer la requête correcte. Il continue à utiliser les clés primaires des deux tables que je rejoins pour la relation un-à-un, et je ne peux pas comprendre comment spécifier la clé étrangère dans l'une des tables.Mappage un-à-un de NHibernate, clés non-primaires
tableA tableB
{ aID, { bID,
bID, z,
c, y,
d } x }
de sorte que le tableA devrait se joindre à l'aide tableB tableA.bID = tableB.bID. Comment puis-je le spécifier dans le mapping pour tableA? J'utilise la classe tableA pour récupérer une ligne à partir de tableA et une ligne à partir de tableB, car il s'agit d'une véritable relation un à un. NHibernate génère le sql pour joindre les tables en utilisant tableA.aID = tableB.bID, ce qui est faux.
Cela ne fonctionne pas:
<class name="tableA" table="tableA">
<id name="aID" column="aID" />
<property name="bID" column="bID" />
<property name="c" column="c" />
<property name="d" column="d" />
<one-to-one name="otherThing" class="tableB" foreign-key="bID" />
</class>
<class name="tableB" table="tableB">
<id name="bID" column="bID" />
<property name="z" column="z" />
<property name="y" column="y" />
<property name="x" column="x" />
</class>
Merci. Ça a marché. Confus que je dois utiliser un élément many-to-one quand c'est vraiment un mapping one-to-one. J'ai également mis le type d'extraction à "joindre" ainsi réduire le nombre de requêtes. – MonkeyWrench
Mais oui, si vous pouvez montrer un exemple bidirectionnel, ce serait éducatif. – MonkeyWrench
Et voilà ... –