我得到了以下方法
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 ");
}
但如果此人不存在则抛出异常,如何有效地评估if person是否为空
答案 0 :(得分:5)
if (person != null && person.getAdd() != null)
System.out.println ("address exist");
}
答案 1 :(得分: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);