Como faço para fazer uma pesquisa com criteria com a clausula distinct onde meu resultado será uma lista de objetos?
Tentei fazer mas não retornava os objetos e sim a quantidade de objetos.
Usei Projections.distinct.
Session session = (Session) em.getDelegate();
Criteria criteria = session.createCriteria(GrupoPoder.class);
criteria.setFirstResult(frstRes);
criteria.setMaxResults(maxRes);
criteria.setProjection(Projections.projectionList().
add(Projections.distinct(Projections.property("id"))));
criteria.createCriteria("poderes", "poder").add(Expression.like("chave", chave+"%").ignoreCase());
Eu preciso que a consulta acima retorne uma lista de objetos GrupoPoder.
Tentou assim:
Session session = (Session) em.getDelegate();
Criteria criteria = session.createCriteria(GrupoPoder.class);
criteria.setFirstResult(frstRes);
criteria.setMaxResults(maxRes);
criteria.setProjection( Projections.distinct( Projections.property( "id" ) ) );
criteria.createCriteria("poderes", "poder").add(Expression.like("chave", chave+"%").ignoreCase());
Foi resolvido da seguinte forma.
Session session = (Session) em.getDelegate();
Criteria criteria = session.createCriteria(GrupoPoder.class);
criteria.createCriteria("poderes", "poder").add(Expression.like("chave", chave+"%").ignoreCase());
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
criteria.setFirstResult(frstRes);
criteria.setMaxResults(maxRes);
return criteria.list();