2012-10-26 96 views
0

我正在使用以下查詢來檢索以下結果。休眠組按名稱結果然後獲取最新日期

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

當我迭代結果時,我只得到一個回報。

UPDATE

我能得到過濾與下面的查詢正常工作,但是我不知道我怎麼會返回一個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]); 
    } 

回答