you're right Bueno pensaba que este era un HQL y es que suponia que simplemente utilizando los nombres de las entidades se podia traducir este a cualquier sql de alli que en el query utilizara los nombres de las entidades y no los nombre fisicos
select tblDiario.ID, tblDiario.IdPost, tblDiario.ID, tblDiario.Asunto,
tblDiario.Mensaje, tblDiario.FeCreacion, tblDiario.AutorId, tblDiario.Orden,
tblActividades.Id As ActividadID, tblActividades.Nombre from *cDiario *as
tblDiario inner join *cDiario_actividad *as LnkDiario on tblDiario.ID =
LnkDiario.DiarioID inner join *cActividad *as tblActividades on
tblActividades.ID = LnkDiario.ActividadID where LnkDiario.ActividadID =
:param1 and tblDiario.Orden = 1
Sin embargo veo que el CreateQuery utiliza las relaciones definidas en los
hbm para hacer los joins con lo que te ahorras los ON en el join.
Para no hacer la mas largar utilice una operacion cartesiana y ya funciono
El método quedo de la siguiente manera
*public cObjectResponse ObtenerListaNotaCabecera(int IdActividad)*
* {*
* cObjectResponse Response = new cObjectResponse();*
* IException oException = Response;*
*
*
* try*
* {*
* using (ISession session = NHibernateHelper.OpenSession())*
* {*
* IQuery q = session.CreateQuery("select tblDiario.ID as
ID, tblDiario.IdPost As IdPost, tblDiario.Asunto as Asunto,
tblDiario.Mensaje as Mensaje, tblDiario.FeCreacion as FeCreacion,
tblDiario.AutorId as AutorId, tblDiario.Orden as Orden, tblActividades.ID As
ActividadID, tblActividades.Nombre as Nombre from cDiario as tblDiario,
cDiario_actividad as LnkDiario, cActividad as tblActividades where
(tblDiario.ID = LnkDiario.DiarioID) and (tblActividades.ID =
LnkDiario.ActividadID) and LnkDiario.ActividadID = :param1 and
tblDiario.Orden = 1");*
* q.SetString("param1", IdActividad.ToString());*
* q.SetResultTransformer(new
AliasToBeanResultTransformer(typeof(DiarioLista)));
*
* IList<DiarioLista> entidades = q.List<DiarioLista>();
*
* Response.Data = entidades;*
* }*
* }*
* catch (System.Exception e)*
* {*
* oException.setException(e.Source.ToString(), e.Message,
507);*
* }*
*
*
* return Response;*
* }*
Gracias por lo comentarios
Saludos [?]
El 9 de abril de 2010 00:24, Fabio Maulo <[email protected]> escribió:
> El metodo CreateQuery recibe un HQL lo que escribiste vos es una SQL.
>
> El 8 de abril de 2010 16:47, Carlos Cocom <[email protected]>escribió:
>
> Para este query utilice CreateQuery
>>
>>
>> Mira este es el método
>>
>> public cObjectResponse ObtenerListaNotaCabecera(int IdActividad)
>> {
>> cObjectResponse Response = new cObjectResponse();
>> IException oException = Response;
>>
>> try
>> {
>> using (ISession session = NHibernateHelper.OpenSession())
>> {
>> IQuery q = *session.CreateQuery*("select
>> tblDiario.ID, tblDiario.IdPost, tblDiario.ID, tblDiario.Asunto,
>> tblDiario.Mensaje, tblDiario.FeCreacion, tblDiario.AutorId, tblDiario.Orden,
>> tblActividades.Id As ActividadID, tblActividades.Nombre from cDiario as
>> tblDiario inner join cDiario_actividad as LnkDiario on tblDiario.ID =
>> LnkDiario.DiarioID inner join cActividad as tblActividades on
>> tblActividades.ID = LnkDiario.ActividadID where LnkDiario.ActividadID =
>> :param1 and tblDiario.Orden = 1");
>> q.SetString("param1", IdActividad.ToString());
>> q.SetResultTransformer(new
>> AliasToBeanResultTransformer(typeof(DiarioLista)));
>> IList<DiarioLista> entidades = q.List<DiarioLista>();
>>
>> Response.Data = entidades;
>> }
>> }
>> catch (System.Exception e)
>> {
>> oException.setException(e.Source.ToString(), e.Message,
>> 507);
>> }
>>
>> return Response;
>> }
>>
>>
>>
>> El 8 de abril de 2010 09:19, Fabio Maulo <[email protected]> escribió:
>>
>> esa query la escribiste vos, no?
>>> que metodo de la session usaste para ejecutarla ?
>>>
>>> El 8 de abril de 2010 06:53, Carlos Cocom <[email protected]>escribió:
>>>
>>>> Hola a toda la comunidad
>>>>
>>>> Haciendo un query para ejecutar en NHibernate me tira el siguiente
>>>> mensaje
>>>>
>>>> *"Path expected for join! [select tblDiario.ID, tblDiario.IdPost,
>>>> tblDiario.ID, tblDiario.Asunto, tblDiario.Mensaje, tblDiario.FeCreacion,
>>>> tblDiario.AutorId, tblDiario.Orden, tblActividades.Id As ActividadID,
>>>> tblActividades.Nombre *
>>>> *from GFV.cDiario as tblDiario *
>>>> *inner join cDiario_actividad as LnkDiario *
>>>> *on tblDiario.ID = LnkDiario.DiarioID *
>>>> *inner join cActividad as tblActividades *
>>>> *on tblActividades.ID = LnkDiario.ActividadID *
>>>> *where LnkDiario.ActividadID = :param1 and tblDiario.Orden = 1]"*
>>>>
>>>> Los mapping estan de manera muy simple
>>>>
>>>> Alguien puede decirme que estoy haciendo mal en esta situacion??? Por
>>>> que no le encuentro
>>>>
>>>>
>>>>
>>>> *cDiario*
>>>>
>>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="GFV"
>>>> auto-import="true">
>>>> <class name = "GFV.cDiario,GFV" table = "diario">
>>>>
>>>> <id name="ID" column="ID">
>>>> <generator class="native"/>
>>>> </id>
>>>> <property name="IdPost" column="IdPost"/>
>>>> <property name="Asunto" column="Asunto"/>
>>>> <property name="Mensaje" column="Mensaje"/>
>>>> <property name="FeCreacion" column="FeCreacion"/>
>>>> <property name="Orden" column="Orden"/>
>>>> <property name="AutorId" column="AutorId"/>
>>>> </class>
>>>> </hibernate-mapping>
>>>>
>>>> *cActividad*
>>>>
>>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="GFV"
>>>> auto-import="true">
>>>> <class name = "GFV.cActividad,GFV" table = "actividad">
>>>>
>>>> <id name="ID" column="ID">
>>>> <generator class="native"/>
>>>> </id>
>>>>
>>>> <property name="PlanId" column="PlanId"/>
>>>> <property name="FecIni" column="FecIni"/>
>>>> <property name="Parent" column="Parent"/>
>>>> <property name="FecFin" column="FecFin"/>
>>>> <property name="Checked" column="Checked"/>
>>>> <property name="FecChecked" column="FecChecked"/>
>>>> <property name="UsuarioId" column="UsuarioId"/>
>>>> <property name="ActividadId" column="ActividadId"/>
>>>> <property name="Nombre" column="Nombre"/>
>>>> <property name="Nivel" column="Nivel"/>
>>>> <property name="Duracion" column="Duracion"/>
>>>> <property name="SubCategoriaIniId" column="SubCategoriaIniId"/>
>>>> <property name="SubCategoriaFinId" column="SubCategoriaFinId"/>
>>>> <property name="duracion_childs" column="duracion_childs"/>
>>>> </class>
>>>> </hibernate-mapping>
>>>>
>>>> *cDiario_actividad*
>>>>
>>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="GFV"
>>>> auto-import="true">
>>>> <class name = "GFV.cDiario_actividad,GFV" table = "diario_actividad">
>>>>
>>>> <id name="ID" column="ID">
>>>> <generator class="native"/>
>>>> </id>
>>>>
>>>> <property name="DiarioID" column="DiarioID"/>
>>>> <property name="ActividadID" column="ActividadID"/>
>>>> </class>
>>>> </hibernate-mapping>
>>>>
>>>> --
>>>> 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
>>
>>
>> --
>> 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
>
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
To unsubscribe, reply using "remove me" as the subject.
<<32B.gif>>
