Pessoal eu tenho uma tabela Entidade Email e nela tenho um Produto com relacionamento @ManyToOne
No banco na minha tabela Email tenho varios Emails com codigos dos Produtos alguns repetidos, porém preciso trazer os emails com distinct dos codigos dos produtos
Tentei fazer de varias formas mas ta vindo todos emails:
Select distinct e from Email e
Select distinct e from Email e join e.produto prod
Alguem sabe como faço?
Como o hibernate vai saber que o distinct e pelo cdProduto?
Isto deve ajudar
hibernate, hql, distinct
Level 30 segundos procurando no google por hibernate + distinct
Select distinct e.produto.idProduto from Email e
[quote=drsmachado]Isto deve ajudar
hibernate, hql, distinct
Level 30 segundos procurando no google por hibernate + distinct[/quote]
E qual a diferença do codigo q eu mandei pra esse que vc me mandou?
Dessa forma vai me trazer so os ids dos produtos eu preciso do Objeto email
evertonsilvagomesjava tudo bem
voce conseguiu resolver o seu problema?
to com o msm problema tb
pessoal, consegui fazer da seguinte forma :
CriteriaBuilder cb= manager.getCriteriaBuilder();
CriteriaQuery<Tuple> c1 = cb.createQuery(Tuple.class);
Root<PrecoPorMetodo> l1 = c1.from(PrecoPorMetodo.class);
c1.multiselect(l1.<Integer>get("grupo").alias("PrecoPorMetodo.grupo"),l1.<Double>get("preco").alias("PrecoPorMetodo.preco"));
c1.distinct(true);
Predicate predicate = cb.equal(l1.get("metodoId"),1498);
c1.where(predicate);
TypedQuery<Tuple> query1 = manager.createQuery(c1);
List<Tuple> resultado1 = query1.getResultList();
for (Tuple registro1 : resultado1) {
int teste = (Integer) registro1.get("PrecoPorMetodo.grupo");
long teste1 = teste;
BigDecimal vpreco = (BigDecimal) registro1.get("PrecoPorMetodo.preco");
System.out.println(teste1);
System.out.println("teste de conversao "+teste1);
System.out.println("preco de conversao "+vpreco);
System.out.println("grupo: "+registro1.get("PrecoPorMetodo.grupo"));
System.out.println("Preco: "+registro1.get("PrecoPorMetodo.preco"));
}
No meu caso tenho algo do tipo:
StringBuffer sql = null;
sql = new StringBuffer();
sql.append(" SELECT distinct p ");
sql.append(" FROM ");
sql.append(" Pessoa p ");
e estou tomando o seguinte erro
ORA-01791: não é uma expressão de SELECT
mas a query me parece estar certa
Carolino,
Mas se tiver uma coluna ID(que seria valor unico) ira trazer todos os dados da sua tabela, mesmo utilizando o distinct certo ??