HIBERNATE - usar distinct em tabelas interligadas

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 :stuck_out_tongue: