Да, вы можете.
Для простых вещей вы можете использовать HQL и выбирать материал в новый объект, не отображаемый (его класс должен быть «зарегистрирован» с NH, но сам по себе не отображается). Синтаксис HQL выглядит так: выберите новый NonMappedClass (column1, column2). Для этого нужен соответствующий конструктор.
Отчеты с использованием HQL быстро ломаются. Я часто обнаружил, что точно знаю, что делать в SQL, но с трудом разбираюсь в способе HQL. Кроме того, отсутствие реальных программных средств для HQL замедляет вас (извините NH Query Analyzer не сокращает его). В этом случае вы можете определить raw с ассоциированным. При выполнении этих запросов NH вернет вам IList массива Object. Вам нужно, чтобы объект Object() был в соответствующем типе. Вам понадобится это для расширенных запросов к отчетности.
Этот материал отличает склонность к ошибкам и отсасывает большое время. Таким образом, вы сделали хороший трансформатор запросов AliasToBean, который может сопоставить имя столбца набора результатов с свойством (имена должны совпадать, конечно). Я не знаю о последнем релизе NH, но у более старого 1.2.1 AliasToBean-конвертера, похоже, была ошибка, в которой он должен был преобразовать значение типа nullable в значение по умолчанию этого типа, а не устанавливать его в null. т.е.: int? будет 0 вместо нуля, если связанное поле БД было нулевым. В некоторых случаях это мешало мне использовать AliasToBean, и мне пришлось сопоставлять их вручную.
Лучший совет - не попасть в ловушку выполнения сложных отчетов с помощью вашего бизнес-объекта и для циклов. Я видел это в производстве. Это будет ужас производительности, так как ваши таблицы растут по размеру.
Можно ли даже вытащить случайные значения без значения из запроса hql? –