A simple question:
In this example I need to retrieve all objects, but these objects must have distinct msgFrom fields.
When I use
List<Message> list = getHibernateTemplate().find("select distinct m.msgFrom from Message m WHERE msgTo = ? AND msgCheck = 0", dinc);
I get next error:
java.lang.ClassCastException: java.lang.Integer cannot be cast to com.example.model.Message
I suppose it's because Hibernate retrieves only one column, but I need an object, not column.
How can I do this?
I think that I can just scroll through a comma, i.e.
List<Message> list = getHibernateTemplate().find("select distinct m.msgFrom, m.To, m.datetime, .......... from Message m WHERE msgTo = ? AND msgCheck = 0", dinc);
But what if I have more than 20 fields here? Is there an easy solution?
Thanks!
You can also use Criteria and Projection together :
Criteria criteria = session.createCriteria( MyEntity.class );
criteria.setProjection( Projections.distinct( Projections.property( "id" ) ) );
Hope it help someone.