我有以下Hibernate-Query,到目前为止工作正常。
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 :(得分:0)
基本查询语法不正确,无法选择 o.useCase和o.description没有,使用聚合器,或在group by子句中包含 BOTH
要修复,请将group by子句更改为:
GROUP BY o.useCase, o.description
答案 1 :(得分:0)
Thx CSL,
但这不是问题,因为按一栏分组效果非常好。
我发现问题是,AVG()函数将o.totalTime的类型更改为Double值。这就是它无法找到合适的构造函数的原因。