Bom pessoal, eu gostaria de respostas ou referências para usar distinct do hibernate para buscar em tabelas que estão ligadas a outras tabelas.
Segue um exemplo simples:
Entidades do banco:
public class Vendedor{
private int id;
private String nome;
}
public class ProdutoVendido{
private int int;
private Produto produto;
private Vendedor vendedor;
}
public class Produto{
public int id;
public Prateleira prateleira;
public String nome;
}
public class Prateleira{
public int id;
public int numeroPrateleira;
}
A dúvida é a seguinte:
Por suposição, eu tenho o nome do vendedor, e eu quero saber todas as prateleiras dos itens que ele vendeu.
o código atual que estou fazendo é:
Criteria criteria = sessao.createCriteria(ProdutoVendido.class,"produtoVendido");
criteria.createAlias("produtoVendido.vendedor","vendedor");
criteria.add(Restrictions.eq("vendedor.nome","vendedor01"));
ProjectionList list = Projections.projectionsList();
criteria.createAlias("produtoVendido.produto","produto");
criteria.createAlias("produto.prateleira","prateleira");
list.add(Projections.distinct(Projections.property("prateleira").as("prateleira"));
criteria.setProjection(list);
criteria.setResultTransformer(new AliasToBeanResultTransformer(ProdutoVendido.class));
return criteria.list();
Básicamente esse é o problema, mas ele diz que prateleira não pode ser encontrada na classe ProdutoVendido, o que é um pouco óbvio