2013-05-23 1 views
0

У меня есть следующий Hibernate-Query, который отлично работает до сих пор.Как использовать Hibernate HQL и AVG-функцию в MySQL

public static List<PerformanceLog> getStatistics() { 
    return entityManager().createQuery(
      "SELECT NEW de.veliqi.selperf.model.PerformanceLog(o.useCase, o.description, o.totalTime) FROM PerformanceLog o", 
      PerformanceLog.class).getResultList(); 
} 

Но мне нужно получить среднее значение o.totalTime, и я не знаю, как это сделать. Используя следующий оператор, выдает исключение: «org.hibernate.hql.internal.ast.QuerySyntaxException: не удается найти подходящий конструктор в классе».

"SELECT NEW de.veliqi.selperf.model.PerformanceLog(o.useCase, o.description, AVG(o.totalTime)) FROM PerformanceLog o GROUP BY o.useCase" 

Каков правильный путь?

ответ

0

Thx CSL,

, но это не было проблемой, так как группировка по одному столбцу работает очень хорошо.

Я выяснил, что проблема заключалась в том, что функция AVG() меняет тип o.totalTime на двойное значение. Вот почему он не смог найти подходящий конструктор.

0

Основной синтаксис запроса неверен, вы не можете выбрать o.useCase и o.description без либо, используя агрегатор на них, или в том числе и их ОБА в группе по п

Чтобы исправить , изменить группу пунктом для:

GROUP BY o.useCase, o.description