【发布时间】:2017-01-24 06:38:13
【问题描述】:
我有一个包含以下字段的表
|id|feedback_status|financial_year|attendence|behaviour|total_feedback|user_id|total_behaviour|
我正在从该表中获取 feedback_status 和 total_feedback,并使用带有投影和投影列表的休眠作为 json 数据返回。
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_status 值 poor 两次,我希望只打印一次值,如果它多次出现然后求和total_feedback对应feedback_status,返回单一个。
【问题讨论】:
-
您好兄弟,您可以尝试使用 .setProjection(Projections.countDistinct("feedback_status"));例如:Criteria criteria = createCriteria(values).setProjection(Projections.countDistinct("feedback_status"));
-
@PradeepCG 这有助于将结果打印为总反馈吗??
-
嘿,您需要结合使用 sum 和 count 进行限制,请查看这些链接 stackoverflow.com/questions/23044565/… stackoverflow.com/questions/23044565/…
标签: java json postgresql hibernate