[Seasar-user:15548] Re: 【S2JDBC】検索結果0件の時のiterateについて

堀切 哲生 [E-MAIL ADDRESS DELETED]
2008年 8月 27日 (水) 19:25:41 JST


小林さん

お世話になっております。
堀切です。

ありがとうございます。
Long型で受け取り、nullであれば0Lを返すことで回避出来ました。

以上

----
Long result = jdbcManager
        .from(AccessCount.class)
        .where("userId = ?", userId)
        .iterate(
                new IterationCallback<AccessCount, Long>() {
            Long count = 0L;
            public Long iterate(
                    AccessCount entity,
                    IterationContext context) {
                count += entity.count;
                return count;
            }
        });
return result == null ? 0L : result.longValue();


----- Original Message ----- 
From: "Koichi Kobayashi" <[E-MAIL ADDRESS DELETED]>
To: "堀切 哲生" <[E-MAIL ADDRESS DELETED]>; <[E-MAIL ADDRESS DELETED]>
Cc: <[E-MAIL ADDRESS DELETED]>
Sent: Wednesday, August 27, 2008 7:00 PM
Subject: Re: [Seasar-user:15543] 【S2JDBC】検索結果0件の時のiterateについて


> 小林 (koichik) です.
>
> Date:    Wed, 27 Aug 2008 18:34:40 +0900
> From:    堀切 哲生 <[E-MAIL ADDRESS DELETED]>
> To:      <[E-MAIL ADDRESS DELETED]>
> Subject: [Seasar-user:15543] 【S2JDBC】検索結果0件の時のiterateについて
>
>> 次の様なコードを検索結果0件になる条件にてJUnitから実行したところ、
>> NullPointerExceptionが発生しました。
> (略)
>> return jdbcManager
>
> この戻り値を long で受け取っているのでは
> ないでしょうか?
>
> long count = 〜
> ^
>>         .iterate(new IterationCallback<AccessCount, Long>() {
>
> この iterate() の戻り値型は long ではなく
> Long であり,0 件の場合は null となりますが,
> null からlong へはキャストできないのでヌルポに
> なります.
> 戻り値を Long で受け取るようにしてください.
>
> このケースに該当しない場合はスタックトレースを
> 見せてください.
>
>
> -- 
> <component name="koichik">
>    <property name="fullName">"Koichi Kobayashi"</property>
>    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> 



Seasar-user メーリングリストの案内