1

我使用的是groovy:休眠準則設置投影groovy

這很好,但我需要它有一個字段映射因爲它返回[[1,2],[2,2]]。我需要的是這樣的[[caseId:1,countId:2],[caseId:2,countId:2]

def childNotes = ChildNote.withCriteria() { 
      createAlias("caseInstance", "caseInstance") 
      createAlias("caseInstance.caseTypeInstance", "caseTypeInstance") 
      createAlias("childNoteEnteredBy", "childNoteEnteredBy") 
      createAlias("assessmentTypeIdAssessmentType", "assessmentTypeIdAssessmentType") 
      eq("caseTypeInstance.caseTypeDescrip", "Youth") 
      eq("childNoteEnteredBy.id", ccuEmployeeId as Long) 
      'in'("assessmentTypeIdAssessmentType.id", assesmentTypes) 
      projections { groupProperty("caseInstance") 
       count("caseInstance") 

       } 

     } 

這不起作用

projections { groupProperty("caseInstance") as "caseId" 
         count("caseInstance") as "caseCount" 

         } 

我也嘗試過該個createCriteria和用在我的代碼,這個例子,但在Projections.property線「預測」無法識別,即使我已經導入org.hibernate.criterion.ProjectionList

List results = session.createCriteria(Domestic.class, "cat") 
.createAlias("kittens", "kit") 
.setProjection(Projections.projectionList() 
    .add(Projections.property("cat.name"), "catName") 
    .add(Projections.property("kit.name"), "kitName")caseInstance 
) 
.addOrder(Order.asc("catName")) 
.addOrder(Order.asc("kitName")) 
.list(); 

任何人都可以爲我指出正確的語法嗎?謝謝。

回答

0

讀取結果的每一行,併爲每一個創建一個地圖,或使用AliasToEntityMapResultTransformer,它會替你:

criteria.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE) 
+0

是本作個createCriteria代替withcriteria?使用createCriteria時,setProjections的問題在於它無法識別。 tnx – user742102

+0

無論你怎麼做,你都要配置Criteria實例。 –

+0

對不起,我該如何使用它?我將它添加到我的標準中,並導致[[:],[:]]。在這裏完成noob。 tnx – user742102