我无法为各自的学生选择TestId最大的行,我编写了如下代码,但未获得所需的输出。我的代码如下,
Criteria c = sessionFactory.getCurrentSession().createCriteria(student.class).setProjection(Projections.projectionList().add(Projections.property("answer"),"answer"));
c.add(Restrictions.eq("surveyId",send_Survey));
//c.add(Restrictions.eq("testId", "1" ));
//c.setProjection(Projection.max("testId"));
c.addOrder(Order.desc("testId"));
c.add(Restrictions.eq("questionid",FinalQuestionsOne));
List<String> age=c.list();
我的表格结构如下,
我需要以下输出。选择max TestId的答案列。如何使用条件查询
获取输出
答案 0 :(得分:0)
所以我认为你想要得到的东西可以通过以下sql来实现:
SELECT TestId, MAX(answer) WHERE questionId = 1 GROUP BY TestId;
您应该能够通过以下Hibernate实现此目的:
sessionFactory.getCurrentSession().createCriteria(student.class).setProjection(Projections.projectionList()
.add(Projections.property("TestId"), "TestId")
.add(Projections.groupProperty("TestId"))
.add(Projections.max("answer")));