你试过Projections.sqlProjection这样的
session.createCriteria(Exam.class)
.setProjection(Projections.projectionList()
.add(Projections.sqlProjection("date(beginExam) as beginDate", new String[] { "beginDate" }, new Type[] { StandardBasicTypes.DATE }))
.add(Projections.groupProperty("beginDate")))
.list();
或像这样的 Projections.sqlGroupProjection
session.createCriteria(Exam.class)
.setProjection(Projections.sqlGroupProjection("date(beginExam) as beginDate", "beginDate", new String[] { "beginDate" }, new Type[] { StandardBasicTypes.DATE }))
.list();
Hibernate 在 SQL 查询中生成表别名,因此您可能需要将 {alias} 片段添加到您的 SQL 片段中以使其工作:
session.createCriteria(Exam.class)
.setProjection(Projections.projectionList()
.add(Projections.sqlProjection("date({alias}.beginExam) as beginDate", new String[] { "beginDate" }, new Type[] { StandardBasicTypes.DATE }))
.add(Projections.groupProperty("beginDate")))
.list();
或SQLGroupProjection:
session.createCriteria(Exam.class)
.setProjection(Projections.sqlGroupProjection("date({alias}.beginExam) as beginDate", "beginDate", new String[] { "beginDate" }, new Type[] { StandardBasicTypes.DATE }))
.list();