1

vaadinのFilterTableアドオンを使用しています。次のコードでNullPointerExceptionが発生しますが、この理由を見つけることができません。

  cont = new IndexedContainer()
  cont.addContainerProperty("Patient", String.class, null);
  cont.addContainerProperty("Date Of Service", String.class,null);
  cont.addContainerProperty("Provider", String.class, null);

    Session session = HibernateUtil.getSessionFactory().openSession();
        Iterator<?> iterator = session.createQuery("FROM ConvertVisitToBillingV WHERE ready_for_billing = '0'").list().iterator();

        while(iterator.hasNext()){

                ConvertVisitToBillingV var = (ConvertVisitToBillingV) iterator.next();

                Visits v = (Visits) session.load(Visits.class, var.getVisitId());
                Appointments app = (Appointments)session.load(Appointments.class, v.getAppointmentId());
                t_id= var.getVisitId();
                cont.addItem(t_id);
                Resources res = (Resources)session.load(Resources.class, v.getReferredBy());
                cont.getContainerProperty(t_id, "Patient").setValue(var.getFirstName() + " " + var.getLastName());
                cont.getContainerProperty(t_id, "Date Of Service").setValue(new SimpleDateFormat("MM/dd/yyyy").format(v.getVisitDt()));
                cont.getContainerProperty(t_id, "Provider").setValue(res.getResourceFirstName()+" "+res.getResourceLastName());


            }

「cont.getContainerProperty(t_id、property).setValue()」という行を実行すると、NullPointerExceptionがスローされることがあります。理由がわかりません。

この背後にある理由は何である可能性があります、どんな助けでも!

ありがとう!

4

1 に答える 1

0

詳細がなければ、次のいずれかを言います:

  • v.getVisitDt()一部の `v`` に対して null です
  • session.load(Resources.class, v.getReferredBy());一部の場合は null を返すため、vnullresも同様です。

これはおそらく問題を解決します:

   cont.getContainerProperty(t_id, "Patient").setValue(var.getFirstName() + " " + var.getLastName());
 if(v.getVisitDt()!=null){
   cont.getContainerProperty(t_id, "Date Of Service").setValue(new SimpleDateFormat("MM/dd/yyyy").format(v.getVisitDt()));
 } else {
   cont.getContainerProperty(t_id, "Date Of Service").setValue("?");
 }
 if(res!=null){
    cont.getContainerProperty(t_id, "Provider").setValue(res.getResourceFirstName()+" "+res.getResourceLastName());
 else{
    cont.getContainerProperty(t_id, "Provider").setValue("?");
 }
于 2013-03-02T09:25:46.430 に答える