j'obtenu le mappage suivant:un à un et en spécifiant la colonne
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="false">
<class name="Gate.Users.User, Gate.Models" table="users">
<id name="Id" column="id">
<generator class="sequence">
<param name="sequence">users_id_seq</param>
</generator>
</id>
<one-to-one class="Gate.Extensions.Extension, Gate.Models" foreign-key="extension_id" name="Extension" />
</class>
</hibernate-mapping>
Tables (pseudo):
table users
(
id primary key
extension_id int
)
table extensions
(
id primary key
address varchar(40)
)
Mon problème est que les utilisations NHibernate users.id au lieu de users.extension_id lors de l'extraction de l'extension. Mon mappage est-il incorrect?
Mise à jour
j'ai changé pour un many-to-one
liant, et maintenant il fonctionne. Je suppose que j'ai dû mal comprendre comment one-to-one
est utilisé?
Il existe une vraie relation 1-1. Eh bien, presque. 'Extension' peut être utilisé par différents types et il y a une colonne identifiant le type auquel il est associé. Un objet ne peut avoir qu'une extension et une extension peut également être associée à un objet. D'où le placement de l'ID dans la table d'extension. – jgauffin