Hibernate - Dúvida implementando consultas

Pessoal, tenho a seguinte query:

select telas.* from int_modulotelas telas, int_modulofuncionalidades funcionalidades where nomeTela = "NovoMemorando" and telas.codigoModuloFuncionalidade = funcionalidades.codigoModuloFuncionalidade and funcionalidades.codigoModulo = 1

Como posso implementar um método com esta busca com HQL ou de preferência, com Criteria?

As classes envolvidas são:

public class ModuloTela {
    private Integer codigoModuloTela;
    private ModuloFuncionalidade moduloFuncionalidade;
    private String nomeTela;
    private String descricao;
    private char ativo = 'S';
........

public class ModuloFuncionalidade { private Integer codigoModuloFuncionalidade; private Modulo modulo; private String nomeFuncionalidade; private String descricao; private char ativo = 'S'; ...........

public class Modulo { private Integer codigoModulo; private String nomeModulo; private char ativo = 'S'; .......

Abraços.

Vou postar aqui com HQL, espero que ajude:

No seu .hbm acresente, após o , acresente isso:

Na sua DAO:

public List findTelas(Long codigoModulo, String nomeTela) throws BusinessException
{
Session s = null;
try
{
s = getSession();
Query q = s.getNamedQuery(“buscaTela”);
q.setParameter("paramCodigoModulo ", codigoModulo);
q.setParameter(“paramNomeTela”, nomeTela);
return q.list();
}
catch(HibernateException ex)
{
checkTransaction(null, ex);
}
finally
{
closeSession(s);
}
return Collections.EMPTY_LIST;
}

Lembre-se de que:
devem Existir os hibernates para:
IntModuloTelas t
IntModuloFuncionalidades f

Nestes hibernates devem existir os parametros:
t.nomeTela
t.codigoModuloFuncionalidade
f.codigoModuloFuncionalidade
f.codigoModulo

Não gosto de utilizar Criteria, mas vou colar um exemplo simples de como utilizei no passado:

public List findByCod(String codigo) throws BusinessException
{
    Session s = null;
    try
    {
        s = this.getSession();
        Criteria query = s.createCriteria(TipoVeiculo.class);

        if (codigo != null)
        {
            query.add(Expression.eq("cod", codigo));
        }

        return query.list();

    }
    catch (HibernateException e)
    {
        checkTransaction(null, e);
    }
    finally
    {
        closeSession(s);
    }
    
    return null;
}

Nunca utilizei Criteria com mais de uma tabela, acredito que isso não é possivel (posso estar), logo não tem como atender seu caso.

[quote=fdalmarco]Vou postar aqui com HQL, espero que ajude:

No seu .hbm acresente, após o , acresente isso:

[/quote]

Legal… funcionou, mas eu fiz a query no próprio DAO.
Não criei uma “named query”, pois estou utilizando o Hibernate Annotations… como posso fazer uma named query com Annotations? Crio um .hbm.xml só para estas querys? É possível fazer isto?
Muito obrigado.
[]s

Nunca utilizei o Anotations do Hibernate.