[Seasar-user:15546] Re: 【S2JDBC】検索結果0件の時のiterateについて
堀切 哲生
[E-MAIL ADDRESS DELETED]
2008年 8月 27日 (水) 18:54:00 JST
川上さん
お世話になっております。
堀切です。
ありがとうございます。
件数自体が0件ですので、entityそのものがnullになるかと思います。
因みに、entity.count はlongで定義しております。
先ほどのとはインデントのみずらしましたが、.iterate(のところで
発生しているようです。
return jdbcManager
.from(AccessCount.class)
.where("userId = ?", userId)
.iterate( // ここで発生
new IterationCallback<AccessCount, Long>() {
long count;
public Long iterate(
AccessCount entity,
IterationContext context) {
if (entity != null) {
count += entity.count;
}
return count;
}
});
以上。
----- Original Message -----
From: "Tatsuharu Kawakami" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Wednesday, August 27, 2008 6:41 PM
Subject: [Seasar-user:15544] Re:【S2JDBC】検索結果0件の時のiterateについて
> 川上と申します。
>
> どこでNullPointerExceptionが発生したかが分からないと適切な回答が得られないと思いますが、今回のケースではentity.countがLong型でそれがnullだったりしませんか?
>
>
> 2008/08/27 18:34 堀切 哲生 <[E-MAIL ADDRESS DELETED]>:
>> お世話になっております。
>> 堀切です。
>>
>> 次の様なコードを検索結果0件になる条件にてJUnitから実行したところ、
>> NullPointerExceptionが発生しました。
>> 尚、検索結果が1件以上ある場合には正常に動作します。
>> 現状、事前にgetCount() == 0を判定して回避していますが、
>> 他に良い回避方法か、修正の見込みはありますでしょうか?
>>
>> return jdbcManager
>> .from(AccessCount.class)
>> .where("userId = ?", userId)
>> .iterate(new IterationCallback<AccessCount, Long>() {
>> long count;
>> public Long iterate(AccessCount entity, IterationContext
>> context)
>> {
>> if (entity != null) {
>> count += entity.count;
>> }
>> return count;
>> }
>> });
>>
>> 以上、アドバイス・回答よろしくお願いいたします。
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>
>
>
> --
> --------------------------------------
> Tatsuharu Kawakami
> [E-MAIL ADDRESS DELETED]
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内