2016-04-28 7 views
2

でlong型の変数を選択します。Querydsl

Long count = ...; 
List<CritereItem> items= new JPAQuery(entityManager).from(foo) 
        .list(new QCritereItem(foo.id, foo.name, count )); 

コンストラクタが可変のcountNumberPath<Long>ないLongを期待して、それでは、どのようquerydslで変数を選択するために、ので、私はコンパイルエラーを得ましたか。

私は、コンストラクタのカウントを置き換える:

Expressions.numberTemplate(Long.class, count.toString()) 

しかし、私はあなたがQueryDSLコンストラクタを通じて定数を渡そうとしている。このexecption

java.lang.IllegalArgumentException: [email protected] 
+0

でそれを行うことができますのでご注意 'CritereItem'のコードを入力してください – miensol

答えて

0

を得ました。より多くの情報のため

チェック式静的クラス: QueryDSL API Reference

NumberExpression<Long> count = Expressions.asNumber(...); 
List<CritereItem> items = new JPAQuery(entityManager).from(foo) 
          .list(new QCritereItem(foo.id, foo.name, count)); 

はまた、あなたが数を集計したい場合、あなたはfoo.count()

+0

'Expressions'型のための' asNumber() '関数は未定義です – Youssef

+0

どのQueryDSLのバージョンを使用していますか?最新のバージョンに更新してください。 –

+0

私は3.4.1バージョン – Youssef