2010-07-23 2 views
3

У меня есть следующий proprtyNHibernate: Условно загрузить вычисляемый столбец

<property name="Allocated" type="decimal" formula="(select sum(a.AllocationAmount) from Allocation a where a.TransactionId = TransactionId)" /> 

Это нагружает сумму сделки, которая была выделена для счетов-фактур, которые работают прекрасно.

Однако, в большинстве случаев я не забочусь об этой сумме. Есть ли способ условно загрузить этот вычисленный столбец? Или есть способ добавить этот вычисленный столбец к HQL/Critera, чтобы я мог просто сделать его частью некоторых конкретных запросов, которые я запускаю?

ответ

2

Если вы указываете access="none" на сопоставление свойств, вы можете сохранить свойство из своей объектной модели вместе, но все же запросить его с помощью hql. См. this article для получения дополнительной информации.

Кроме того, вы могли бы учитывать, что логика в функцию, зарегистрировать его с помощью пользовательского диалекте, а затем запроса/проекта на нем, используя критерии API (через Projections.SqlFunction)