2016-09-16 212 views
1

休眠预测我有一个包含从该表下列字段为弹簧引导应用

|id|feedback_status|financial_year|attendence|behaviour|total_feedback|user_id|total_behaviour| 

荫取feedback_status和total_feedback的表,并返回作为使用JSON数据有突起和projectionlist冬眠。

List<StudentFeedback> results = null; 

       Session session = getSession(); 
       Criteria criteria = session.createCriteria(StudentFeedback.class); 

       ProjectionList projlist = Projections.projectionList(); 
       projlist.add(Projections.property("totalFeedback").as("qty")); 
       projlist.add(Projections.groupProperty("feedbackStatus").as("feedName")); 

       criteria.setProjection(projlist); 
       criteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); 
       results = criteria.list(); 
} 
    return GsonUtils.toGson(results); 
    } 

我feedback_status和total_feedback包含下列值

|feedback_status|   |total_feedback | 
    Excellent     23 
    Average      11 
    Poor      12 
    Good      13 
    Poor      12 

所以,问题是无论何时返回JSON,它打印feedback_statuspoor两次,我想一次印刷只值并且如果它发生多于一次,则总结对应于feedback_statustotal_feedback并返回到单个。

+1

你好兄弟得到了答案, 你可以尝试使用.setProjection(Projections.countDistinct( “feedback_status”) ); 例如:标准条件= createCriteria(values).setProjection(Projections.countDistinct(“feedback_status”)); – Pradeep

+0

@PradeepCG对于打印出来的结果很有帮助,因为total_feedback? – BeginnerBro

+0

嘿,你需要使用总和与计数限制,请检查这些链接 http://stackoverflow.com/questions/23044565/count-with-other-fields-in-group-by-with-hibernate http: //stackoverflow.com/questions/23044565/count-with-other-fields-in-group-by-with-hibernate – Pradeep

回答

1

我用groupProperty休眠porjections

顺便说一句感谢普拉迪普CG

List<StudentFeedback> results = null; 

Session session = getSession(); 
Criteria criteria = session.createCriteria(StudentFeedback.class); 

ProjectionList projlist = Projections.projectionList(); 
projlist.add(Projections.sum("totalFeedback").as("qty")); 
projlist.add(Projections.groupProperty("feedbackStatus").as("feedName")); 


criteria.setProjection(projlist); 
criteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); 
results = criteria.list(); 

return GsonUtils.toGson(results);