2009-07-22 6 views
1

Есть ли способ использовать выражения в предложении Select?NHibernate HQL Query: выражения в предложении Select

Например:

выберите u.Age/2 от пользователя у

У меня это исключение прямо сейчас:

NHibernate.QueryException: '' ожидается в SELECT, раньше:/[выберите u.Age/2 из Business.Entities.User u]

ответ

0

Да, вы можете это сделать. Результатом запроса будет List of Object [], где каждый элемент массива является результатом вычисления столбца. В вашем примере, если в таблице было 10 строк, вы получите список из 10 элементов, каждый из которых имеет объект Item [], содержащий значение age/2.

Я бы связался с частью документов Hibernate, описывающих это поведение (у него есть специальное имя, я не могу вспомнить, что это такое), но hibernate.org, похоже, снова опустился.

+0

Хм .. Я не в состоянии выполнить этот простой запрос, но на самом деле я использую NHibernate, может быть, это проблема? я имея это исключение: NHibernate.QueryException: '' ожидается в SELECT, раньше:/[выберите u.Age/2 от Business.Entities.User и] – 2009-07-22 16:54:35

+0

ах хорошо ... Hibernate = NHibernate! ..... – skaffman

2

Вы просто хотите получить результат u.Age, разделенный на два? Вы можете использовать HQL, но мне легче изменить атрибут формулы в файле сопоставления.

т.е.

<property name="HalfAge" formula="Age/2" /> 
+0

Спасибо за ответ, это был всего лишь пример, но я буду иметь это в виду – 2009-07-22 17:09:00

+0

Ухаживать за этим в ответ? :] –