2011-10-17 73 views
0

我有一个命名查询,检索类“Expediente”的对象列表。我需要为这个对象添加一个计算字段(confirmado),但是我无法弄清楚如何为这个特定查询映射这个字段。我试图在映射文件中使用insert =“false”update =“false”但随后每个查询都需要该字段。 你能帮我吗?如何在NHibernate中选择非映射字段?

<sql-query name="BuscarExpedientes"> 
<return alias="e" class="GestionDPV.Core.Expediente, GestionDPV.Core"/> 
<return-join alias="cab" property="e.Agregados"/> 
<![CDATA[ 
    SELECT e.*, 
    CASE 
    WHEN p.id IS NULL THEN p.confirmado 
    ELSE 1 
    END AS confirmado 
    FROM Expedientes e 
    LEFT JOIN Expedientes cab ON cab.id = e.idCabecera 
    LEFT JOIN Pases p ON p.idExpediente = e.id AND p.fechaGeneracion = (SELECT MAX(fechaGeneracion) FROM Pases WHERE idExpediente = e.id) 
]]> 

回答

0

您可以使用<return-scalar>。请参阅documentation

顺便说一句,如果你期望<return-join>,你也必须选择它的列。

+0

我试过这种方法,但与返回标量,我不能映射此标量值作为类中的属性。这是我的问题,返回整个类加上这个额外的字段 – 2011-10-19 11:19:26