2010-07-23 6 views
3

je le proprty suivantNHibernate: conditionnellement charger une colonne calculée

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

Cette charge le montant d'une transaction qui a été allouée aux factures qui travaille très bien.

Cependant, dans la plupart des cas, je ne me soucie pas de cette quantité. Existe-t-il un moyen de charger de manière conditionnelle cette colonne calculée? Ou y a-t-il un moyen d'ajouter cette colonne calculée à HQL/Critera afin que je puisse juste faire partie de certaines requêtes spécifiques que je cours?

Répondre

2

Si vous spécifiez access="none" sur le mappage de propriété, vous pouvez conserver la propriété hors de votre modèle objet tout en l'interrogeant à l'aide de hql. Voir this article pour plus d'informations.

En outre, vous pouvez tenir cette logique en fonction, inscrivez-vous avec un dialecte personnalisé et recherche/projet à l'aide de l'api de critères (par Projections.SqlFunction)

Questions connexes