Reputation: 59
public List<String> listOfChunks() {
Criteria criteria = getSession().createCriteria(Student.class);
criteria.addOrder(Order.asc("id"));
criteria.setProjection(Projections.sqlProjection("right(name,1) as lastChar", new String[]{"lastChar"}, new Type[]{ new StringType()}));
return criteria.list();
}
Above query is giving me last char of all the students name, how can i avoid duplicates in lastchar which I am getting in list() ?
Upvotes: 0
Views: 75
Reputation: 3078
Use Projections.distinct which creates a distinct projection from a projection
Criteria criteria = getSession().createCriteria(Student.class);
criteria.addOrder(Order.asc("id"));
criteria.setProjection( Projections.distinct(
Projections.sqlProjection("right(name,1) as lastChar"
, new String[]{"lastChar"}
, new Type[]{ new StringType()})));
return criteria.list();
Upvotes: 1