Arquivo

Archive for the ‘Hibernate’ Category

Ótima fonte para aprender Hibernate

Ei pessoal, se você quer uma ótima fonte para aprender Hibernate, aqui está:

http://www.roseindia.net/hibernate/index.shtml

Enjoy!

Hibernate: HQL x Criteria

É muito comum em entrevistas perguntarem as diferenças entre HQL e Criteria, ambos relacionados com Hibernate. Para quem não sabe, HQL quer dizer Hibernate Query Language.

O HQL é mais próximo do SQL, é mais utilizado para consultas fixas, que não tem alterações no número de parâmetros necessários.

O Criteria é mais voltado para consultas onde o número de parâmetros não é conhecido, como em listagens que contém N filtros, neste caso o Criteria é mais recomendado por montar uma instrução mais direcionada para a busca em questão, sem adicionar campos ou parâmetros desnecessários, o que acaba agilizando a consulta na base de dados.

O Criteria oferece ainda N métodos e parâmetros para realmente fazermos uma busca bem poderosa e personalizada.

Um exemplo de uso de criteria é este abaixo, onde já temos uma classe CIDADE mapeada no Hibernate:

Criteria c = getSession().createCriteria(Cidades.class); // criando o criteria para a classe cidade
c.add( Restrictions.eq(“estado.uf”, “SP”) ); // fazendo um filtro, no caso, onde estado == SP
List cidadesDeSaoPaulo = c.list(); // retornando a listagem – Fácil né?

O mais interessante ainda é que criteria tem vários métodos que podem nos auxiliar com as querys, por exemplo, trazer ordenado por descrição:

c.addOrder( Order.asc(“descricao”) );

Para setar a quantidade máxima de resultados, usamos o setMaxResults:

crit.setMaxResults(15);

Referências:

Mais sobre criteria pode ser obtido aqui.
Vários exemplos de consultas podem ser obtidas aqui.
Mais sobre HQL aqui.

Enjoy!

Executando uma Stored Procedure no Hibernate

agosto 17, 2009 1 comentário

Essa muita gente pergunta, como executar uma Stored Procedure no Hibernate?

Basicamente os passos são:

0- Criamos a stored procedure no banco.

1- Criamos uma mapped query, ja relacionada a classe que vai ter um método que representa o “output” da stored procedure.

3- Chamamos a mapped query jogando o resultado dela num objeto que recebe o retorno do método que criamos na classe citada acima.

Um exemplo completo pode ser visto aqui.