使用条件查询/ hibernate查询选择最大ID行的问题?

时间:2014-05-06 08:14:23

标签: spring hibernate criteria hibernate-criteria

我无法为各自的学生选择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();

我的表格结构如下,

enter image description here

我需要以下输出。选择max TestId的答案列。如何使用条件查询

获取输出

enter image description here

1 个答案:

答案 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")));