Hibernate: criteria

O que eu gostaria de saber é como eu faço pra procurar por um atributo que não esta na mesma classe. Por exemplo:
procurar um contrato por nome do cliente que possui o contrato.
Seria assim:

Criteria crit = s.createCriteria( Contrato.class );
crit.add( Expression.like( "cliente.getNome()", "%"+nomeCliente+"%" ) ); 

Eu gostaria que retornasse o contrato que possui o cliente que tem o nome like “%”+nomeCliente+"%" .
do jeito que ta da pau!

Criteria crit = s.createCriteria( Contrato.class );
crit.createCriteria("cliente).add( Expression.like( "nome", "%"+nomeCliente+"%" ) ); 

me avise sobre se deu certo ou não!

Mas para isto funcionar tem que ter a tabela relacionada corretamente.

@gui0rafa
Vlw, o seu funcionou sim!!!

@juliano
O seu não funcionou n cara =/.

Vlw pra vcs dois, brigadao!

Outra pergunta:

como é que eu procuro com criteria atraves de um atributo Set?

eu tenho uma classe exemplo:

class Pessoa{
          Set<Amigo> amigos;
}

Eu quero procurar uma pessoa que possui uma amigo com nome like “%nome%”.
como eu faço?
assim?:

Criteria crit = s.createCriteria( Pessoa.class );
		crit.createCriteria("amigos").add( Expression.like( "nome", "%"+nome+"%" ) );