サーブレットに次のコードがあります。
try
{
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("Flights_AssignmentPU");
EntityManager em = emFactory.createEntityManager();
Query query = em.createNamedQuery("Passengers.findByPassportNum");
query.setParameter("passportNum", passport);
List<Passengers> result = query.getResultList();
em.close();
for(int i = 0; i < result.size(); i++)
{
name = result.get(i).getName();
surname = result.get(i).getSurname();
email_address = result.get(i).getEmail();
}
}
catch(Exception e)
{
response.sendRedirect("ErrorPage.html");
}
if(email_address.isEmpty() == false)
{
//Send email using email address
}
このコードは、ユーザーがデータベースに電子メールアドレスを持っている場合に問題なく機能します。ただし、データベースの電子メールフィールドが空の場合、GlassFishサーバーはnullポインタ例外を表示します。
これを非難するのは間違いなくこれです:
email_address = result.get(i).getEmail();
何らかの理由で、ユーザーが電子メールを持っていない場合、この行は私に今説明したエラーを与えています。どうすればこの問題を解決できますか?
編集
getEmailメソッドは、エンティティクラスを作成するときに自動的に生成されます(私は永続性を使用しました)。
そのコードは次のとおりです。
public String getEmail() {
return email;
}