quizás puedas encontrar otras opciones interesantes en: http://nhforge.org/doc/nh/en/index.html#queryhql. <http://nhforge.org/doc/nh/en/index.html#queryhql>
2010/4/9 Carlos Cocom <[email protected]> > 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 > -- 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>>
