Вы пробовали Projection.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();
или Projection.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();