Hibernate Подзапросы
У меня есть ситуация, когда мне нужно преобразовать запрос, как:-
select hostname, avg(cpu_utilization_percentage) from cpu_utilization where timestamp In (select distinct(timestamp) from report.cpu_utilization order by timestamp desc limit 6) group by hostname
Теперь эти данные я хочу получить с помощью hibernate, поэтому я использовал подзапросы:-
// Для внутреннего запроса
DetachedCriteria subquery = DetachedCriteria.forClass(CpuUtilizationDTO.class);
subquery.setProjection(Projections.distinct(Projections.property("timeStamp"))).addOrder(Order.desc("timeStamp"));
subquery.getExecutableCriteria(session).setMaxResults(6);
// Для внешнего запроса
Criteria query = session.createCriteria(CpuUtilizationDTO.class);
ProjectionList list = Projections.projectionList();
list.add(Projections.groupProperty("hostName"));
list.add(Projections.avg("cpuUtilizationpercentage"));
query.setProjection(list);
List<Object[]> obj= (List<Object[]>)hibernateTemplate.findByCriteria(query);ction(list);
// Теперь, чтобы добавить подзапрос в основной запрос, который я использую
query.add(Subqueries.propertyIn("timeStamp", subquery));
Но каждый раз я получаю среднее значение по всем данным. Может ли кто-нибудь помочь, пожалуйста, где я пропустил?