public class Case
{
public int Id { get; set; }
public string Number { get; set; }
public Employee Employee { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string EmployerIdentifier { get; set; }
public Case Case { get; set; }
}
Il existe une relation un à un entre Case et Employee. Cependant, il existe plusieurs enregistrements dans la base de données représentant le même employé. Pour trouver ces enregistrements, nous regardons le EmployerIdentifier. Donc, si je n'ai que le Employee.Id, comment puis-je écrire une requête NHibernate qui retourne tous les cas pour cet employé. En SQL je le ferais en rejoignant deux fois la table employee (voir l'exemple ci-dessous).NHibernate comment joindre à la table deux fois dans HQL
Declare @TargetEmployeeID bigint
set @TargetEmployeeID = 246834
select * from Cases C
inner join Employees E on E.EmployeeID = C.EmployeeID
inner join Employees EST on EST.EmployerIdentifier = E.EmployerIdentifier
where EST.EmployeeID = @TargetEmployeeID
Comment le ferais-je en utilisant HQL?
Cela ne correspond pas à ce que je cherchais. Note dans le sql ci-dessus, je dois rejoindre deux fois à la table des employés. Pour le faire comme vous le suggérez, je devrais avoir le EmployeeIdentifier mais je ne l'ai pas initialement. Je pourrais faire un aller-retour à la DB pour l'obtenir mais j'essayais d'éviter cela. – Kevin