Ó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!
Ei pessoal, se você quer uma ótima fonte para aprender Hibernate, aqui está:
http://www.roseindia.net/hibernate/index.shtml
Enjoy!
É 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!