2009-07-22 15 views
0

Guten Nachmittag, ich versuche nHibernate zu lernen und es ist nicht furchtbar klar.nhibernate: wie man Aggregate abbildet

Ich brauche das Ergebnis einer SQL-Abfrage zu erhalten:

select patient.name, 
     discipline.description, 
     sum(patient.enddate - patient.startdate) as totaltime 
from treatment 
join patient on patient.id = treatment.patientId 
join discipline.id = treatment.disciplineId 

Ich brauche nicht das Ergebnis bestehen bleiben, es ist nur angezeigt werden soll.

  • Wenn ich hql direkt verwenden:

Welche Objekte werden es mir instanziiert und zurück? Wird es dynamisch eine Liste von Objekten erstellen, die Felder enthalten, die mit den Spalten in der Ergebnismenge identisch sind? Die Dokumente lassen diese Informationen weg.

  • Wenn ich brauche, um eine Zuordnung zu machen:

Erstellen Sie eine Zuordnung zu einem ‚Meta‘ Objekt oder zu einem der verknüpften Tabellen (zB ‚Behandlung‘)?

Dank

Antwort

0

Dies kann durch Verwendung DTO-Objekte ("Datentransferobjekte") erreicht werden. Sie erstellen ein Objekt, das nur die Daten enthält, die Sie zurückgeben möchten. Fügen Sie einen Initialisierungskonstruktor hinzu. Dann kann Ihr hql von der Form sein:

wählen Sie neues mydto (x.value, y.value) von x join x.y;

Es scheint jedoch nicht zu mögen Aggregatfunktionen im Objektkonstruktor zu verwenden.

Verwandte Themen