2010-07-23 95 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)就可以了項目

註冊它