JPA criteria distinct[Resolvido]

2 respostas
E

Pessoal, gostaria de colocar o DISTINCT no criteria abaixo , Como eu posso fazer ??

EntityManagerFactory factory= Persistence.createEntityManagerFactory("testandoJPA");
		EntityManager manager= factory.createEntityManager();		
		CriteriaBuilder cb= manager.getCriteriaBuilder();
		
		CriteriaQuery<Tuple> c = cb.createQuery(Tuple.class);
		Root<Livro> l = c.from(Livro.class);
		c.multiselect(l.<String>get("nome").alias("livro.nome"),l.<Double>get("preco").alias("livro.preco"));
		
		TypedQuery<Tuple> query = manager.createQuery(c);
		List<Tuple> resultado = query.getResultList();
		
		for (Tuple registro : resultado) {
			System.out.println("fsdasfd"+registro.get("livro.nome"));
			System.out.println("fsdasfd"+registro.get("livro.preco"));
		}

2 Respostas

E

solução :

EntityManagerFactory factory= Persistence.createEntityManagerFactory("testandoJPA");
		EntityManager manager= factory.createEntityManager();		
		CriteriaBuilder cb= manager.getCriteriaBuilder();
		
		CriteriaQuery<Tuple> c = cb.createQuery(Tuple.class);
		Root<Livro> l = c.from(Livro.class);
		c.multiselect(l.<String>get("nome").alias("livro.nome"),l.<Double>get("preco").alias("livro.preco"));
		c.distinct(true);
				
		TypedQuery<Tuple> query = manager.createQuery(c);
		List<Tuple> resultado = query.getResultList();
		
		for (Tuple registro : resultado) {
			System.out.println("Livro: "+registro.get("livro.nome"));
			System.out.println("Preco: "+registro.get("livro.preco"));
		}
lele_vader

Da dó de ver essa criteria desse jeito.
É muito mais complicado que a do hibernate.

Criado 31 de outubro de 2012
Ultima resposta 31 de out. de 2012
Respostas 2
Participantes 2