<query> es para HQL y HQL no tiene "exec"

2010/8/31 Eddie <[email protected]>

> Buenas,
> Tengo q ejecutar un stored procedure que hace una actualizacion a un
> grupo de registros. Como no es el update normal de un registro, quise
> incluirlo en una Named Query.
>
> Pero siempre obtengo el error [ Named query not known: "Nombre de la
> consulta" ]
> El archivo de mapeo esta bien incluido y funciona perfecto para el
> resto de las operaciones del sistema.
>
> Mi configuracion de las consultas y la forma en que quiero usarlas es
> la siguiente:
>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace
> ="CallCenter.ObjectModel.Domain" assembly ="CallCenter.ObjectModel">
>  <class name="Gestion" table="Gestiones" where ="Estado='A'" >
>    .
>    .
>    .
>    <sql-query name="AG">
>      exec
> ActivarGestionesPendientes :IdCamp, :IdDescripcion_Gestion, :PostergarHasta
>    </sql-query>
>
>    <query name="ActivarGestiones">
>      <query-param name="IdCamp" type="Int32"/>
>      <query-param name="IdDescripcion_Gestion" type="Int32"/>
>      <query-param name="PostergarHasta" type="Date"/>
>      exec ActivarGestionesPendientes ?,?,?
>    </query>
>  </class>
> </hibernate-mapping>
>
> Funcion en el Repocitorio de la clase Gestion
>        Public Sub ActivarGestiones(ByVal idCampaña As Integer, ByVal
> idDescripcionGestion As Integer, ByVal postergarHasta As Date)
>            'Traemos la consulta definida en el archivo de mapeo
>            'y seteamos sus parametros
>            Dim c As IQuery =
> Session.GetNamedQuery("ActivarGestiones")
>            c.SetInt32("IdCamp", idCampaña)
>            c.SetInt32("IdDescripcion_Gestion", idDescripcionGestion)
>            c.SetDateTime("PostergarHasta", postergarHasta)
>
>            c.ExecuteUpdate()
>
>
>            Session.GetNamedQuery("AG").SetInt32("IdCamp",
> idCampaña).SetInt32("IdDescripcion_Gestion",
> idDescripcionGestion).SetDateTime("PostergarHasta",
> postergarHasta).UniqueResult()
>
>
>
>            Dim list = Session.CreateSQLQuery("exec
> ActivarGestionesPendientes ?, ?, ?")
>            list.SetInt32(0, idCampaña)
>            list.SetInt32(1, idDescripcionGestion)
>            list.SetDateTime(2, postergarHasta)
>
>            list.UniqueResult()
>
>        End Sub
>
>
> Las dos primeras maneras en las que quiero traer la consulta que esta
> en el archivo de mapeo dan el error que les menciono.
> La 3ra forma (usar en el nombre del SP y crear la consulta por codigo)
> anda bien. Pero me gustaria poder dejar todo en el archivo  de mapeo.
>
>
> Muchas gracias a cualquier idea q me puedan dar.
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano




-- 
Fabio Maulo

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a