当 jpa 查询在数据库中找不到行时获取空指针异常
Getting null pointer exception when jpa query not found a row in database
我正在尝试使用 jpa 从数据库中获取查询结果。当查询在数据库中没有发现任何东西时,它是 returns 空指针异常。我尝试像下面的代码一样检查它的 if 语句,但我仍然遇到空指针异常。
public List<String> getQuestionSavedUser(String salesOrder, String module,int questionID)
{
List<String> singleUser= entityManager.createQuery("select i.savedBy from EVMResponses i where i.salesOrder='"+salesOrder+"' AND i.module='"+module+"' AND i.questionID="+questionID+"", String.class).getResultList();
System.out.println(singleUser.size());
if(singleUser.size()>0&&singleUser.get(0)!=null)
{
users.add(singleUser.get(0));
}
else
{
users.add("");
}
return users;
}
我该如何解决这个问题?
可能 entityManager 为空,请检查!
或者您可以使用:
List<String> singleUser = new ArrayList<>();
singleUser = entityManager.createQuery("select i.savedBy from EVMResponses i where i.salesOrder='"+salesOrder+"' AND i.module='"+module+"' AND i.questionID="+questionID+"", String.class).getResultList();
看entityManager是否正常工作。 \
试试这个:
public List<String> getQuestionSavedUser(String salesOrder, String module,int questionID)
{
List<String> users = new ArrayList<>();
List<String> singleUser= entityManager.createQuery("select i.savedBy from EVMResponses i where i.salesOrder='"+salesOrder+"' AND i.module='"+module+"' AND i.questionID="+questionID+"", String.class).getResultList();
System.out.println(singleUser.size());
if(singleUser.size()>0&&singleUser.get(0)!=null)
{
users.add(singleUser.get(0));
}
else
{
users.add("");
}
return users;
}
我正在尝试使用 jpa 从数据库中获取查询结果。当查询在数据库中没有发现任何东西时,它是 returns 空指针异常。我尝试像下面的代码一样检查它的 if 语句,但我仍然遇到空指针异常。
public List<String> getQuestionSavedUser(String salesOrder, String module,int questionID)
{
List<String> singleUser= entityManager.createQuery("select i.savedBy from EVMResponses i where i.salesOrder='"+salesOrder+"' AND i.module='"+module+"' AND i.questionID="+questionID+"", String.class).getResultList();
System.out.println(singleUser.size());
if(singleUser.size()>0&&singleUser.get(0)!=null)
{
users.add(singleUser.get(0));
}
else
{
users.add("");
}
return users;
}
我该如何解决这个问题?
可能 entityManager 为空,请检查!
或者您可以使用:
List<String> singleUser = new ArrayList<>();
singleUser = entityManager.createQuery("select i.savedBy from EVMResponses i where i.salesOrder='"+salesOrder+"' AND i.module='"+module+"' AND i.questionID="+questionID+"", String.class).getResultList();
看entityManager是否正常工作。 \
试试这个:
public List<String> getQuestionSavedUser(String salesOrder, String module,int questionID)
{
List<String> users = new ArrayList<>();
List<String> singleUser= entityManager.createQuery("select i.savedBy from EVMResponses i where i.salesOrder='"+salesOrder+"' AND i.module='"+module+"' AND i.questionID="+questionID+"", String.class).getResultList();
System.out.println(singleUser.size());
if(singleUser.size()>0&&singleUser.get(0)!=null)
{
users.add(singleUser.get(0));
}
else
{
users.add("");
}
return users;
}