Hibernate - query!

Prq este sql da hql

select O from Orientador as O join O.cursos as C where O.cursos.tipoCurso = C.tipoCurso and O.cursos.tipoCurso.nivel.nivel = 'graduação'

nao se comporta igual a este sql ansi?

SELECT * 
FROM Orientador
INNER JOIN CursosOrientadores ON Orientador.id_orientador = CursosOrientadores.id_orientador
INNER JOIN Curso ON CursosOrientadores.id_tipocurso = Curso.id_tipocurso
INNER JOIN TipoCurso ON Curso.id_tipocurso = TipoCurso.id_tipocurso
INNER JOIN Nivel ON Nivel.id_nivel = TipoCurso.id_nivel
WHERE Nivel.nivel = 'graduação'

Alguem poderia me ajudar?
Obrigado!!

[quote=Abdon]Prq este sql da hql

select O from Orientador as O join O.cursos as C where O.cursos.tipoCurso = C.tipoCurso and O.cursos.tipoCurso.nivel.nivel = 'graduação'

nao se comporta igual a este sql ansi?

SELECT * 
FROM Orientador
INNER JOIN CursosOrientadores ON Orientador.id_orientador = CursosOrientadores.id_orientador
INNER JOIN Curso ON CursosOrientadores.id_tipocurso = Curso.id_tipocurso
INNER JOIN TipoCurso ON Curso.id_tipocurso = TipoCurso.id_tipocurso
INNER JOIN Nivel ON Nivel.id_nivel = TipoCurso.id_nivel
WHERE Nivel.nivel = 'graduação'

Alguem poderia me ajudar?
Obrigado!![/quote]
Qual o retorno de um e de outro?
********* Editado **********
Tenta usar a query assim:

SELECT 
	* 
FROM
	Orientador
INNER JOIN 
	CursosOrientadores 
INNER JOIN 
	Curso 
INNER JOIN 
	TipoCurso 
INNER JOIN 
	Nivel 
WHERE Nivel.nivel = 'graduação'
and	Orientador.id_orientador = CursosOrientadores.id_orientador
and	CursosOrientadores.id_tipocurso = Curso.id_tipocurso
and	Curso.id_tipocurso = TipoCurso.id_tipocurso
and	Nivel.id_nivel = TipoCurso.id_nivel;

heheh o problema é contrario a query do sql ansi funciona a da hql nao. No join com cursos ele nao esta listando todos os elementos que deveria ser listado!!!

Qual o SQL gerado pelo Hibernate?

SELECT orientador0_.id_orientador AS id1_, orientador0_.nome AS nome0_, orientador0_.dt_nascimento AS dt3_0_, orientador0_.cpf AS cpf0_, orientador0_.rg AS rg0_, orientador0_.email AS email0_
FROM Orientador orientador0_
INNER JOIN CursosOrientadores cursos1_ ON orientador0_.id_orientador = cursos1_.id_orientador
INNER JOIN Curso curso2_ ON cursos1_.id_tipocurso = curso2_.id_tipocurso
AND cursos1_.id_faculdade = curso2_.id_faculdade, Curso curso4_, CursosOrientadores cursos3_, Curso curso6_, CursosOrientadores cursos5_, TipoCurso tipocurso7_, Nivel nivel8_
WHERE (
curso4_.id_tipocurso = curso2_.id_tipocurso
AND (
nivel8_.nivel LIKE 'Graduação'
)
AND orientador0_.id_orientador = cursos3_.id_orientador
AND cursos3_.id_tipocurso = curso4_.id_tipocurso
AND cursos3_.id_faculdade = curso4_.id_faculdade
AND orientador0_.id_orientador = cursos5_.id_orientador
AND cursos5_.id_tipocurso = curso6_.id_tipocurso
AND cursos5_.id_faculdade = curso6_.id_faculdade
AND curso6_.id_tipocurso = tipocurso7_.id_tipocurso
AND tipocurso7_.id_nivel = nivel8_.id_nivel
)

Os sql gerados pelo hibernate tem muito alias, ainda ta me confundindo um poko :frowning:
Obrigado a vcs que estão me ajudando
Abdon

Você tem um many-to-many de Orientador para Curso, certo?
Se for Hibernate 2.x, tenta:

Criteria c = session.createCriteria( Orientador.class );
c.createAlias( "cursos", "cursos" )
.createAlias.addAlias( "tipoCurso", "tipoCurso" )
.createAlias( "nivel", "nivel" )
.add( Expression.eq( "nivel", "graduacao" ) );