我正在使用以下查询来检索以下结果。
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]);
}