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));

Но каждый раз я получаю среднее значение по всем данным. Может ли кто-нибудь помочь, пожалуйста, где я пропустил?

0 ответов

Другие вопросы по тегам