criteria.add(Restrictions.eq("restaurant.id", restaurant.getId()));
criteria.add(Restrictions.ge("date", startDate));
criteria.add(Restrictions.le("date", endDate));
criteria.add(Restrictions.isNotNull("menu.id"));
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.distinct(Projections.property("menu").as("menu")));
projectionList.add(Projections.groupProperty("uuid"));
projectionList.add(Projections.groupProperty("theme").as("theme"));
criteria.setProjection(projectionList).setResultTransformer(new AliasToBeanResultTransformer(OrderStatsDto.class));
List<OrderStatsDto> result = criteria.list();
for (OrderStatsDto tmp : result) {
System.out.println(tmp.getTheme().getName());