[NHibernate]Propriété Many-to-one et composite-id
Bonjour,
Je ne comprends comment fait NHibernate pour mapper une propriété many-to-one à l'une des colonnes faisant partir d'une clé composite-id.
J'ai une table EMPLOYEE dont la clé est une clé composite
EMPLOYEE(SITE, IDEMPLOYEE, NAME)
J'ai une table TASK dont la clé est aussi une clé composite et dont l'une des colonnes (CREATOR_BY) est l'ID de l'employé.
TASK(SITE,IDTASK,CREATOR_BY)
J'ai donc défini les classes Employee et Task de la manière suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class Employee
{
public virtual string SITE {get; set;}
public virtual string IDEMPLOYEE {get; set;}
public virtual string NAME{get; set;}
}
public class Task
{
public virtual string SITE {get; set;}
public virtual string IDTASK{get; set;}
public virtual Employee CREATOR_BY{get; set;}
} |
J'ai défini le mapping de Employee et Task comme suit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<class name="Employee" table="EMPLOYEE" lazy="true">
<composite-id>
<key-property name="SITE" type="System.String"/>
<key-property name="IDEMPLOYEE" type="System.String"/>
</composite-id>
<property name="NAME" type="System.String/>
</class>
<class name="Task" table="TASK" lazy="true">
<composite-id>
<key-property name="SITE" type="System.String"/>
<key-property name="IDTASK" type="System.String"/>
</composite-id>
<many-to-one name="CREATOR_BY" class="Employee" lazy="false">
<column name="SITE"/>
<column name="CREATOR_BY"/>
</many-to-one>
</class> |
Ca fonctionne plutôt bien. Le hic, c'est que je ne comprends pas trop comment fait NHibernate.
En effet, comment fait-il pour savoir que CREATOR_BY correspond à la colonne IDEMPLOYEE de la classe Employee ?
Merci d'avance,
Zoax