3
java.lang.NoSuchMethodException: DailyReportDto.<init>(java.lang.Integer, java.lang.Integer, java.lang.Double)
:中
CriteriaBuilder cb = this.entityManager.getCriteriaBuilder();
CriteriaQuery<ReportDto> q = cb.createQuery(ReportDto.class);
q.select(cb.construct(DailyReportDto.class, r.get(createdYear),
r.get(KpiSnapshot_.createdDay),
cb.toLong(cb.avg(r.get(KpiSnapshot_.value)))));
結果私には意味がありません
、toLong
のでいけない、ダブルを探してからそれを防ぐ必要がありますか?
私はあなたの、について説明を得ることはよく分かりません。 toLongコールの後に式があっても、それでもDoubleを返しますか? –
Nitek
はい。何かをキャストするのと同じです。オブジェクト自体は変更されません。表現が二重を返そうとしていたとしても、それはまだ残っています。これは、あなたはそれが返さロングタイプで、そのようにそれを使用する必要があります知っているかもしれ式などの他の表現、のためのものです。 –
Chris
奇妙ですが、(なんとか)意味があります。しかし、expresion.as(Long.class)は動作しませんか? javadocsによると、新しいExpressionオブジェクトが作成されています。それとも、元のExpressionの単なる型キャストされたクローンですか? – Nitek