Did you try with a lazy loaded collection already?

-Markus

2010/4/15 Diego Dias <[email protected]>

> I did a test:
>
>                    ICriteria c = session
>                        .CreateCriteria<Matricula>();
>
>                    c.SetFirstResult(0)
>                        .SetMaxResults(10);
>
>                    ICriteria c2 = CriteriaTransformer.Clone(c);
>                    var count =
> c2.SetProjection(Projections.RowCount())
>                        .UniqueResult<int>();
>
>                    return c.List<Matricula>();
>
> The query generates is:
>
> SELECT top 10 this_.IdMatricula as IdMatric1_38_17_
>  FROM tracking.matriculas this_
>  inner join 1.turmas turma2_ on this_.IdTurma=turma2_.IdTurma
>  left outer join 1.cursos curso3_ on turma2_.IdCurso=curso3_.IdCurso
>  left outer join 1.status statuscurs4_ on
> curso3_.idStatus=statuscurs4_.idStatus
>  left outer join 1.tipos tipocurso5_ on
> curso3_.IdTipoCurso=tipocurso5_.IdTipoCurso
>  left outer join 1.PadraoComunicacao padraocomu6_ on
> curso3_.IdPadraoComunicacao=padraocomu6_.IdPadrao
>  left outer join 2.lms_cp_organizations organizati7_ on
> curso3_.IdOrganization=organizati7_.Id_Organization
>  left outer join 1.CursosPresenciais cursoprese8_ on
> curso3_.IdCurso=cursoprese8_.IdCurso
>  left outer join 1.turmasstatus turmastatu9_ on
> turma2_.idTurmaStatus=turmastatu9_.idTurmaStatus
>  left outer join 1.TurmasPresenciais turmaprese10_ on
> turma2_.IdTurma=turmaprese10_.idTurma
>  inner join 3.matriculasresumo matricular11_ on
> this_.IdMatricula=matricular11_.IdMatricula
>  inner join 4.Usuarios usuario12_ on
> this_.IdUsuario=usuario12_.IdUsuario
>  left outer join 5.Usuarios usuario12_1_ on
> usuario12_.IdUsuario=usuario12_1_.idUsuario
>  left outer join 6.Organizacoes organizaca13_ on
> usuario12_.idOrganizacao=organizaca13_.idOrganizacao
>  left outer join 6.Cargos cargo14_ on
> usuario12_.idCargo=cargo14_.idCargo
>  left outer join 5.TiposColaboradores tipocolabo15_ on
> usuario12_1_.idTipoColaborador=tipocolabo15_.IdTipo
>  left outer join 5.NiveisHierarquicos nivelhiera16_ on
> usuario12_1_.idNivelHierarquico=nivelhiera16_.IdNivel
>  left outer join 5.EstadosCivis estadocivi17_ on
> usuario12_1_.idEstadoCivil=estadocivi17_.IdEstadoCivil
>  inner join 3.matriculasstatus matriculas18_ on
> this_.idMatriculaStatus=matriculas18_.idMatriculaStatus
>
> I noticed that the "left outer join" are add when the object is a
> child of a child of the object parrent.
> I have Matricula that has Turma that has Curso. Then between Matricula
> and Turma the NH add inner join but between Turma and Curso the NH add
> left outer join.
>
> This is default? something's wrong with my mapping/model?
>
> The query c2 is only test I do not use it.
>
> On 13 abr, 14:52, Diego Dias <[email protected]> wrote:
> > My criteria have this:
> > {
> > IdTurma = -99
> > Usuario.NomeCompleto asc
> >
> > }
> >
> > Being that I create my criteria by Matricula
> >
> > 2010/4/13 Markus Zywitza <[email protected]>
> >
> >
> >
> > > Can you share the ICriteria query code then?
> >
> > > -Markus
> >
> > > 2010/4/13 Diego Dias <[email protected]>
> >
> > >> I use ICriteria and is query I get in sql profile.
> >
> > >> 2010/4/13 Markus Zywitza <[email protected]>
> >
> > >> What is the query (in HQL or LINQ)?
> >
> > >>> -Markus
> >
> > >>> 2010/4/13 Diego Dias <[email protected]>
>  >
> > >>>> Good morning, guys.
> >
> > >>>> I'm with a problem with the query that NHibernate generates. My
> mapping
> > >>>> is like bellow:
> >
> > >>>>     public class Matricula
> > >>>>     {
> > >>>>            [BelongsTo("IdTurma", NotNull=True)]
> > >>>>            public Turma {get;set;}
> > >>>>     }
> >
> > >>>>     public class Turma
> > >>>>     {
> > >>>>           [BelongsTo("IdCurso", NotNull=True)]
> > >>>>           public Curso {get;set;}
> > >>>>     }
> >
> > >>>>     public class Curso
> > >>>>     {
> > >>>>            [PrimaryKey("IdCurso",
> Generator=PrimaryKeyType.Identity)]
> > >>>>            public int IdCurso{get;set;}
> > >>>>      }
> >
> > >>>> The problem is: The Nh generates the query with left where should be
> > >>>> inner. Between Matricula and Turma they makes inner, but between
> Turma and
> > >>>> Curso they makes left outer. What's problem? What's wrong?
> >
> > >>>> My query:
> >
> > >>>>     SELECT  this_.IdMatricula as IdMatric1_122_14_,
> > >>>>       this_.IdTurma as IdTurma122_14_,
> > >>>>       this_.IdUsuario as IdUsuario122_14_,
> > >>>>       turma3_.IdTurma as IdTurma25_0_,
> > >>>>       turma3_.idTurmaStatus as idTurmaS2_25_0_,
> > >>>>       turma3_.IdCurso as IdCurso25_0_,
> > >>>>       curso4_.IdCurso as IdCurso31_1_,
> > >>>>       curso4_.idStatus as idStatus31_1_,
> > >>>>       curso4_.IdTipoCurso as IdTipoC10_31_1_,
> > >>>>       curso4_.IdOrganization as IdOrgan11_31_1_,
> > >>>>       statuscurs5_.idStatus as idStatus54_2_,
> > >>>>       statuscurs5_.strStatus as strStatus54_2_,
> > >>>>       tipocurso6_.strDescricao as strDescr2_125_3_,
> > >>>>       padraocomu7_.strNmPadrao as strNmPad2_103_4_,
> > >>>>       organizati8_.Id_Organization as Id1_87_5_,
> > >>>>       organizati8_.strTitle as strTitle87_5_,
> > >>>>       cursoprese9_.IdCurso as IdCurso6_6_,
> > >>>>       turmastatu10_.idTurmaStatus as idTurmaS1_91_7_,
> > >>>>       usuario1_.IdUsuario as IdUsuario116_10_,
> > >>>>       organizaca14_.idOrganizacao as idOrgani1_83_11_,
> > >>>>       cargo15_.idCargo as idCargo7_12_,
> > >>>>       matriculas16_.idMatriculaStatus as idMatric1_15_13_
> > >>>>        FROM tracking.matriculas this_
> > >>>>      inner join cursos.turmas turma3_ on
> this_.IdTurma=turma3_.IdTurma
> > >>>>      left outer join schemadbo.cursos curso4_ on
> > >>>> turma3_.IdCurso=curso4_.IdCurso
> > >>>>      left outer join schemadbo.status statuscurs5_ on
> > >>>> curso4_.idStatus=statuscurs5_.idStatus
> > >>>>      left outer join schemadbo.tipos tipocurso6_ on
> > >>>> curso4_.IdTipoCurso=tipocurso6_.IdTipoCurso
> > >>>>      left outer join schemadbo.PadraoComunicacao padraocomu7_ on
> > >>>> curso4_.IdPadraoComunicacao=padraocomu7_.IdPadrao
> > >>>>      left outer join schemadbo.lms_cp_organizations organizati8_ on
> > >>>> curso4_.IdOrganization=organizati8_.Id_Organization
> > >>>>      left outer join schemadbo.CursosPresenciais cursoprese9_ on
> > >>>> curso4_.IdCurso=cursoprese9_.IdCurso
> > >>>>      left outer join schemadbo.turmasstatus turmastatu10_ on
> > >>>> turma3_.idTurmaStatus=turmastatu10_.idTurmaStatus
> > >>>>      left outer join schemadbo.turmaspresenciais turmaprese11_ on
> > >>>> turma3_.IdTurma=turmaprese11_.idTurma
> > >>>>      inner join schemadbo.matriculasresumo matricular12_ on
> > >>>> this_.IdMatricula=matricular12_.IdMatricula
> > >>>>      inner join schemadbo.usuarios usuario1_ on
> > >>>> this_.IdUsuario=usuario1_.IdUsuario
> > >>>>      left outer join schemadbo.Organizacoes organizaca14_ on
> > >>>> usuario1_.idOrganizacao=organizaca14_.idOrganizacao
> > >>>>      left outer join schemadbo.cargos cargo15_ on
> > >>>> usuario1_.idCargo=cargo15_.idCargo
> > >>>>      inner join schemadbo.matriculasstatus matriculas16_ on
> > >>>> this_.idMatriculaStatus=matriculas16_.idMatriculaStatus
> > >>>>       WHERE this_.IdTurma = @p0
> > >>>> --
> > >>>> You received this message because you are subscribed to the Google
> > >>>> Groups "Castle Project Users" group.
> > >>>> To post to this group, send email to
> > >>>> [email protected].
> > >>>> To unsubscribe from this group, send email to
> > >>>> [email protected]<castle-project-users%[email protected]><castle-project-users%2Bun
> [email protected]>
> > >>>> .
> > >>>> For more options, visit this group at
> > >>>>http://groups.google.com/group/castle-project-users?hl=en.
> >
> > >>> --
> > >>> You received this message because you are subscribed to the Google
> Groups
> > >>> "Castle Project Users" group.
> > >>> To post to this group, send email to
> > >>> [email protected].
> > >>> To unsubscribe from this group, send email to
> > >>> [email protected]<castle-project-users%[email protected]><castle-project-users%2Bun
> [email protected]>
> > >>> .
> > >>> For more options, visit this group at
> > >>>http://groups.google.com/group/castle-project-users?hl=en.
> >
> > >> --
> > >> You received this message because you are subscribed to the Google
> Groups
> > >> "Castle Project Users" group.
> > >> To post to this group, send email to
> > >> [email protected].
> > >> To unsubscribe from this group, send email to
> > >> [email protected]<castle-project-users%[email protected]><castle-project-users%2Bun
> [email protected]>
> > >> .
> > >> For more options, visit this group at
> > >>http://groups.google.com/group/castle-project-users?hl=en.
> >
> > >  --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Castle Project Users" group.
> > > To post to this group, send email to
> [email protected]
> > > .
> > > To unsubscribe from this group, send email to
> > > [email protected]<castle-project-users%[email protected]><castle-project-users%2Bun
> [email protected]>
>  > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/castle-project-users?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Castle Project Users" group.
> To post to this group, send email to [email protected]
> .
> To unsubscribe from this group, send email to
> [email protected]<castle-project-users%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/castle-project-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to