EclipseLinkでレコードカウントクエリを書く


JQLで、レコードカウントクエリが必要になったので、
どう書けば良いのか調べた結果をメモします。


参考サイト


書き方

FestivalというEntityがあるとして以下のように記述できます。

    SELECT COUNT(f) FROM Festival f

commons-langのStrBuilder使い方メモ - Qiita にある
StrBuiler を使って、以下のように記載しました。

    public static final String COUNT_FESTIVALS = new StrBuilder()
            .appendln("SELECT ")
            .appendln("    COUNT(f) ")
            .appendln("FROM ")
            .appendln("    Festival f ")
            .build();

戻りは、Query#getSingleResult()で取得すると、Long型で取れるようで、
Integerで取得できると、Cast を Integer にしていたら、

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

と Cast 失敗でエラーになりました。

以上です。

コメント