-3

我得到了以下方法

public Person findByAdd(String add) {
    try {
        final String queryString = "select p from Destinations p where p.address = :add";
        Query query = em.createQuery(queryString);
        query.setParameter("add", add);
        return (Person) query.getSingleResult();

    } catch (RuntimeException re) {
        throw re;
    }
}

如果 Person 对象不存在,则会引发空指针异常,并且我想做这样的事情

if(person.getAdd !=null){
   system.out.println ("address exist");    
}
else
{
system.out.println ("please enter address ");   
}

但是如果人不存在,这会引发异常,我如何有效地评估如果人为空

4

2 回答 2

5
if (person != null && person.getAdd() != null)
   System.out.println ("address exist");    
}
于 2013-01-18T14:55:13.957 回答
1

getSingleResult()如果要返回null值,请勿使用。用这个:

TypedQuery<Person> query = em.createQuery(queryString, Person.class);
List<Person> list = query.getResultList();
if (list.isEmpty()){
    return null;
}
return list.get(0);
//or inlined: return list.isEmpty() ? null : list.get(0);
于 2013-01-18T14:57:23.950 回答