当前位置: 首页 > 知识库问答 >
问题:

可选orElseThrow给出空指针异常

公良同
2023-03-14

我有以下方法:

public Tenant getTenant(String tenantId) throws TenantNotFoundException {
return tenantDatabaseService.findTenantById(tenantId)
    .orElseThrow(() -> new TenantNotFoundException("Tenant not found"));
}

租户数据库服务。findTenantById(tenantId)返回可选的:

public Optional<Tenant> findTenantById(String id) {
    return tenantRepository.findById(id);
}

findById为null时,我希望抛出异常。相反,我看到正在抛出NullPointerException

Failed to complete request: java.lang.NullPointerException: while trying to invoke the method 
java.util.Optional.orElseThrow(java.util.function.Supplier) of a null object returned from 
com.sap.gb.service.TenantDatabaseService.findTenantById(java.lang.String)

有什么帮助吗?

共有2个答案

华浩壤
2023-03-14

myy jpa实现存在问题,链中的方法之一是抛出null,正如你们许多人提到的那样。感谢所有的帮助。

丌官星渊
2023-03-14

如果你是指租户储蓄。findById(id)有时返回null,我会按照以下方式调整它。

public Optional<Tenant> findTenantById(String id) {
    return Optional.ofNullable(tenantRepository.findById(id));
}
 类似资料:
  • 问题内容: 我有一个非常简单的应用程序,它只是一个带有选项卡视图的活动。 我已经初始化并将所有内容强制转换为应有的值,但是不断出现空指针错误,该错误始终链接回 tabHost.setup(); 我正在使用android studio,并且是java的新手。这个问题在这里已经问了很多,但所有答案都只是说要包含setup(),而我已经做到了。 这是我的.java文件: 我的代码和一些在线教程之间的唯一

  • 问题内容: 我正在android中做一个应用程序,因此我需要访问com.android.internal.telephony API。现在,我可以访问这些API了,但问题是,无论我在自己的类中调用Class Call.java方法的什么地方,都会抛出。您可以在http://hi- android.info/src/com/android/internal/telephony/Call.java.h

  • 在标记项处获取NullPointerException。getKey(),不明白问题出在哪里

  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db

  • 当我试图从DB查询结果时,我得到一个空指针异常。以下是错误: 这是错误产生的函数。 如果我启动应用程序信息服务(=new ApplicationInfoService()),我会得到一个指向我的服务类的空指针错误,在这里进行查询 错误转到createQuery行,如果我打印出EntityManager,它将返回“null”。为什么我的Entitymanager不能初始化。我在我的登录系统中使用了几