Mais um post ai pra galera, iremos falar sobre Criteria agora.

A algum tempo fui apresentado a API de consultas do Hibernate (Hibernate Criteria API), a idéia basica desta api é que poderiamos fazer consultas SQL ao invés de consultas do Hibernate (HQL).
Fiz uso desta API por algum tempo e sempre obtive bons resultados.

Só que com a JPA 2, passamos a ter acesso a uma outra API de criteria. Há vantagens e também desvantagens de se usar esta API, veja:

Vantagens:

  • Verificação de erros – Muitos erros podem ser identificados em tempo de compilação do projeto;
  • Segurança – Como a JPA trata de criar estas consultas, ficamos quase imunes a SQL injections.

Desvantagens:

  • Complexidade – Muitos desenvolvedor estão acostumados a utilizar linguagens SQL/HQL/JPQL e migrar pra esta API não é simples.

Veremos agora a utilização da API.

Executando uma consulta utilizando JPQL:

		Query q = entityManager.createQuery("SELECT p FROM Produto p");
		List resultList = q.getResultList();

Para executarmos esta mesma query, mas utilizando JPA Criteria API:

Continue lendo