当 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;
    }