Como o hibernate resolve isso?

Vi alguns tutoriais sobre hibernate mostranto o mapeamento dos registros pra objetos… Achei muito interressante e estou pensando em utilizar a framework. Mas estou com uma duvida que nenhum material abordou. Se tenho duas tabelas relacionadas (Cliente - Pedido) e quero retornar um conjunto de campos obtidos de um join como abaixo:

Select C.Nome, C.Endereço de entrega, P.Valor P.Descricao
Where C.CodCliente = P. CodCliente
and P.CodPedido = 10

Como o Hibernate vai retornar isso? Ele me retornará um conjunto de objetos baseados em uma classe especifica pra esse join? Que metodo do hibernate resolve isso? So me restou essa duvida pra adotar definitivamento a framework.

Desde já agradeço.

Denis Pe. de Paula

Mas se ele vai me retornar uma classe cliente como ele vai persistir os pedidos? Vai gravar o cliente na classe cliente e cada um dos pedidos do cliente na classe pedido? Nesse caso vou ter que ter um atributo Pedidos na classe cliente?

Seria Assim:

public class Clientes {
private int codigo;
private String nome;
private Set pedidos;
private Set contasReceber;
private Set notasFiscais;
.
.
.
}

Neste caso se quiser alterar so o nome do cliente eu carrego o atributo “codigo” e “nome” e invoco o metodo de salvamento do hibernate? Seguindo o mesmo raciocionio se quiser gravar um conta a receber eu carrego o atributo “codigo”, e o Set de “contasReceber” e invoco o mesmo metodo?