次のコードがあります。それは正常に動作します。例外などはありません。標準クエリで取得した JPA Entity オブジェクトのリストをループしています (したがって、リストにオブジェクトはありませんnull
)。
for (PeriodicalTable periodical : resultsP){
stringFor.add(periodical.getReference());
site = em.find(SiteTable.class, periodical.getSiteID());
if (site != null && site.getPostcode() != null && !site.getPostcode().equals("")){
tempString = site.getPostcode().replaceAll("\\s+", " ");
periodical.setPostcode(tempString.trim());
}
}
ここで、ループされるリスト内のオブジェクトにofif
がある場合にのみ 1 行が実行されるように、ステートメントを追加しました。以下にマークを付けます。contractManagerID
0
for (PeriodicalTable periodical : resultsP){
if(periodical.getContractManagerID()==0) //<---- HERE!!!!
{
stringFor.add(periodical.getReference());
}
site = em.find(SiteTable.class, periodical.getSiteID());
if (site != null && site.getPostcode() != null && !site.getPostcode().equals("")){
tempString = site.getPostcode().replaceAll("\\s+", " ");
periodical.setPostcode(tempString.trim());
}
}
いくつかのデバッグの後、例外を if ステートメント自体 (「HERE」とマーク) からのものとして分離しましたが、それがどのようになるのかわかりません。リストにオブジェクトがないことはわかっていnull
ます。そうしないと、if ステートメントがなくても機能しませんが、それがなくても正常に機能します。私は完全に迷っています。