我正在使用以下查询来检索以下结果。
List<TranslationStyleSheet> results = this.session.createCriteria(TranslationStyleSheet.class).list();
File_Name Create_Date TimeStamp
PDF Version | 10/1/2012
PDF Version | 10/2/2012
PDF Version | 10/10/2012
TXT Version | 9/2/2012
DOC Version | 9/31/2012
DOC Version | 10/5/2012
从那里我只需要返回最新的文件名,不包括旧的结果。
示例
File_Name Create_Date TimeStamp
PDF Version | 10/10/2012
TXT Version | 9/2/2012
DOC Version | 10/5/2012
我尝试了以下代码但没有成功。
List<TranslationStyleSheet> results = this.session.createCriteria(TranslationStyleSheet.class)
.setProjection(Projections.projectionList()
.add(Projections.groupProperty("fileName"))
.add(Projections.max("createDate")))
.list();
有人知道怎么做到这一点吗?我首先得到一个例外[Ljava.lang.Object;无法转换为org.mycompany.test.entities.TranslationStyleSheet
当我迭代结果时,我只得到一个作为回报。
更新
我能够通过以下查询使过滤正常工作,但是我不知道如何返回一个TranslationStyleSheet obj而不仅仅是它的一部分。
查询
List results = this.session.createCriteria(TranslationStyleSheet.class)
.setProjection(Projections.projectionList()
.add(Projections.groupProperty("fileName"))
.add(Projections.max("createDate")))
.list();
List<Object[]> objs = results;
for (Object[] obj : objs ) {
System.out.println(obj[0] + " " + obj[1]);
}
答案 0 :(得分:0)
不做订单修复你的问题?
http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html#querycriteria-ordering
addOrder(Order.desc("date"))