一个简单的问题: 在此示例中,我需要检索所有对象,但是这些对象必须具有不同的msgFrom字段。 当我使用
List<Message> list = getHibernateTemplate().find("select distinct m.msgFrom from Message m WHERE msgTo = ? AND msgCheck = 0", dinc);
我收到下一个错误:
java.lang.ClassCastException: java.lang.Integer cannot be cast to com.example.model.Message
我想这是因为Hibernate只检索一列,但是我需要一个对象,而不是列。 我怎样才能做到这一点? 我认为我可以只滚动逗号,即
List<Message> list = getHibernateTemplate().find("select distinct m.msgFrom, m.To, m.datetime, .......... from Message m WHERE msgTo = ? AND msgCheck = 0", dinc);
但是,如果我在这里有20多个字段怎么办?有一个简单的解决方案吗?
谢谢!
下面是示例查询:
select e from Message e where e.msgFrom IN (select distinct m.msgFrom from Message m WHERE m.msgTo = ? AND m.msgCheck = "0");
或者,您也可以使用Criteria API。