我有一个使用Hibernate获取一些数据的方法,但是如果实体是Null,当我尝试与它进行比较时抛出NullPointerException
ExampleController.java
@RequestMapping(value = "/example/{exampleId}")
public String exampleMethod(@PathVariable("exampleId") final Integer exampleId, final ModelMap model) {
ExampleEntity ee = this.ExampleEntityService.load(exampleId);
if (ee.exampleAnidatedEntity() == null) {
model.addAttribute("exampleAnidatedEntity", ee.exampleAnidatedEntity());
} else {
model.addAttribute("exampleAnidatedEntity", new ExampleAnidatedEntity());
}
// Do some stuff...
答案 0 :(得分:4)
将此更改为
if (ee!=null && ee.exampleAnidatedEntity() == null) {
这将仅在ee
不为空时进行检查。
答案 1 :(得分:1)
我假设您正在使用session.load()来获取对象
“如果load()在高速缓存或数据库中找不到该对象,则抛出异常.load()方法永远不会返回null。如果找不到该对象,则get()方法返回null。 “强>
在这种情况下,您需要在获取 ee 对象时处理空指针异常。
try{
this.ExampleEntityService.load(exampleId);
}catch(Exception ne){
/**handle exception**/
}
如果你使用的是get(),那么ee可以为null,在这种情况下,null check将是
if (null==ee) {
return;
}
if (ee.exampleAnidatedEntity() == null){
/**handle null**/
} else {
/** handle not null**/
}
答案 2 :(得分:0)
如果你这样做,那就更好了
if (ee !=null && ee.exampleAnidatedEntity() == null) {}