Consulta Criteria JPA

1 resposta
jpajava
Dayson_Rodrigues

estou aprendendo a trabalhar com Criteria e possuo uma duvida,

Já entendi o que é JPQL, proximo passo estou assistindo umas aulas de Criteria, no caso esse criteria é do JPA?
Segue um exemplo:

@Test
	public void carrosComValorAcimaDaMedia(){
		CriteriaBuilder builder = manager.getCriteriaBuilder();
	 	
		CriteriaQuery<Servico> criteriaQuery = builder.createQuery(Servico.class);
	 	Subquery<Double> subquery = criteriaQuery.subquery(Double.class);
	 	
	 	Root<Servico> servico = criteriaQuery.from(Servico.class);
	 	Root<Servico> servSub = subquery.from(Servico.class);
	 	
	 	subquery.select(builder.avg(servSub.<Double>get("valor"))); //media da minha subQuery
	 	
	 	criteriaQuery.select(servico);
	 	criteriaQuery.where(builder.greaterThanOrEqualTo(servico.<Double>get("valor"),subquery )); // Na minha query principal eu quero, o valor seja maior ou igual que o resultado da subquery que vou fazer.
	 	
	 	TypedQuery<Servico> query = manager.createQuery(criteriaQuery);
	 	List<Servico> servicos = query.getResultList();
	 	
	 	for (Servico s: servicos) {
			System.out.println(s.getCarro().getPlaca() + " - " +s.getCarro().getModeloCarro().getNome());
		}

1 Resposta

Jonathan_Medeiros

Segue material de estudo sobre o Criteria: archive web uaiherbert

Criado 18 de julho de 2017
Ultima resposta 18 de jul. de 2017
Respostas 1
Participantes 2