У меня возникли трудности с представлением этого запроса, который я пишу для выбора строк максимального месяца и максимального года из заданного «uid». У меня есть 6 данных, в которых 3 данных имеют uid «4», а другие 3 данных имеют uid «5». Я хочу получить данные о максимальном месяце и максимальном годе как из uid 4, так и из 5. Вот мой критерий запроса. Я получаю этот результат.
Размер списка результатов: 2
uID: 5 nID: cdf Месяц: 11 Год: 2012
uID: 4 nID: f58 Месяц: 10 Год: 2012
Но когда я меняю год uid с 2012 на 2013, он возвращает только строку uid 4.
DetachedCriteria maxYearQuery = DetachedCriteria.forClass(Demo.class);
ProjectionList yearProj = Projections.projectionList();
yearProj.add(Projections.max("contextYear"));
yearProj.add(Projections.max("contextMonth"));
yearProj.add(Projections.groupProperty("entityUUID"));
maxYearQuery.setProjection(yearProj);
Criteria crit = session.createCriteria(Demo.class);
crit.add(Subqueries.propertiesIn(new String[] {"contextYear","contextMonth", "entityUUID"}, maxYearQuery));
crit.addOrder(Order.desc("entityUUID"));
мой стол выглядит так..
>
uID: 4 nID: cdf Месяц: 10 Год: 2012
uID: 4 nID: f58 Месяц: 9 Год: 2012
uID: 5 nID: f58 Месяц: 8 Год: 2012
UID: 5 nID: f58 Месяц: 11 Год: 2012
uID: 5 nID: f58 Месяц: 10 Год: 2013
uID: 4 nID: f58 Месяц: 9 Год: 2012
Мне нужна 1-я и 5-я запись из моей базы данных. Я застрял на этом этапе. Пожалуйста, дайте некоторые рекомендации, чтобы получить запись по группировке.
Заранее спасибо.