2009-07-22 4 views
0

Добрый день, я пытаюсь изучить nHibernate, и это не очень ясно.nhibernate: как отобразить агрегаты

мне нужно, чтобы получить результат SQL-запроса:

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 

мне не нужно упорствовать результат, просто показать его.

  • Если я использую HQL непосредственно:

Какие объекты он будет экземпляр и вернуться ко мне? Будет ли он динамически строить список объектов, содержащих поля, идентичные столбцам в результирующем наборе? Документы не учитывают эту информацию.

  • Если мне нужно сделать отображение:

ли вы создать отображение в «мета» объекта или к одному из соединяемых таблиц (например «лечение»)?

Благодаря

ответ

0

Это может быть достигнуто с использованием объектов DTO («объекты передачи данных»). Вы создаете объект, который содержит только те данные, которые вы хотите вернуть. Добавьте конструктор инициализации. Тогда ваш hql может иметь следующий вид:

выберите новое mydto (x.value, y.value) из x join x.y;

Однако, похоже, что в конструкторе объектов, как правило, не используются агрегированные функции.

Смежные вопросы