我能够引入异常处理,但我只能真正设法将其应用于检索特定id的endpoint
// service class method
public Organization getOrganizationById(final Long id){
return organizationRepository.findById(id).orElseThrow((ResourceNotFoundException::new));
}
//related controller method
@GetMapping("/{id}")
public ResponseEntity<Organization> getOrganizationByID(@PathVariable("id") final Long id) {
return ResponseEntity.ok(organizationService.getOrganizationById(id));
}
我不确定它是否可以应用到一个endpoint,比如@GetMapping(“/{id}/applications”)
,它返回一个与特定组织的id相关联的应用程序列表。但是,我认为应该这样做,因为如果我在上面的endpoint中输入一个无效的id,我会得到一个500错误,这个错误没有得到很好的处理。
我希望能够处理这样一个事实:如果我将一个无效的组织id传递给一个endpoint,比如organizations/{id}/applications
,那么异常将被优雅地处理。
在我看来,这个问题似乎是我无法从自定义存储库方法(如findById(id)
)调用orelsetrow
方法。
// can invoke exception handling
public Organization getOrganizationById(final Long id){
return organizationRepository.findById(id).orElseThrow((ResourceNotFoundException::new));
}
// can't invoke exception handling
public List<Application> getAllApplicationsWithOrganizationId(final Long id){
return organizationRepository.findById(id).get().getApplications();
}
我的假设正确吗?
非常感谢您的任何意见。
以下答案假设organizationRepository是一个JpaRepository
,或类似的存储库
方法orelsetrow
来自Java的可选类。如果您改为调用get()
方法,您将不再有可选的,而是它包含的任何内容。
您可以使用map()
方法。这将获取可选
中的值,并对其应用一个方法,如果没有值,则给出一个空可选
。在map
之后,您可以再次使用或ElseThrow
。像这样:
organizationRepository.findById(id)
.map(organisation -> organisation.getApplications())
.orElseThrow(ResourceNotFoundException::new);
问题内容: 今天,我在采访中面临一个问题。是否可以在Singleton类上应用继承概念?我说过,由于构造函数是私有的,因此我们无法扩展该Singleton类。 他问我的下一件事是将继承应用于该Singleton类。因此,我将Singleton的构造函数作为受保护对象,认为孩子的构造函数也已受到保护。但是我错了,孩子可以有一个等于或大于该值的修饰符。 因此,我请他在这种情况下举一个真实的例子。他没能
我有一个带post请求的控制器。我试图用一个简单的NotNull注释验证POJO。我正在使用ControllerAdvice来处理异常。 所以我尝试使用它,但当我启动应用程序时,我得到了以下信息: 因此,我想为BindException创建自己的处理程序,但当我为BindException类创建ExceptionHandler时,spring应用程序不会启动。如果我注释掉handleBindExc
我正在使用Xamarin.forms将我的iOS和Android应用程序整合到一个代码库中。我正在使用Firebase来处理生产中应用程序的远程通知。我希望在我的新Xamarin项目中使用来自我的生产应用程序的相同的google-service.json和googleService-info.plist文件。这可能吗?或者我需要在Firebase中创建和注册一个全新的应用程序? 我已经尝试将现有的
假设我有这行代码 Spring数据的留档说明了“findById”函数: 抛出:IllegalArgumentException-如果id为空。 在我的例子中,它不可能为null,所以我是否仍然应该添加try-catch块来处理发生错误的情况?此外,是否应该尝试/抓住它并进行相应处理?还是我应该让它被扔掉 @ControllerAdvice/异常处理程序处理它并将错误返回给用户?
我试图用spring Boot开发一个应用程序。我被困在管理应用程序的异常/错误上。到目前为止,我有服务层和控制器,我已经创建了特定于服务类的异常。对于。(如)异常类是。服务抛出各自的。我被困在如何处理控制器中的异常/错误,如果那里有异常?特别针对api方法调用的格式不正确的输入。我正在读取控制器的输入。我应该把它包括在服务中吗? 所有服务异常都以500个内部应用程序错误的形式返回HTTP代码。我
问题内容: 我在寻找什么: 设置一个字符的一半样式的方法。(在这种情况下,一半字母是透明的) 我目前正在搜索并尝试过的内容(没有运气): 样式字符/字母一半的方法 使用CSS或JavaScript设置字符的样式 将CSS应用于字符的50% 以下是我尝试获取的示例。 为此是否存在CSS或JavaScript解决方案,还是我不得不诉诸图像?我宁愿不走图片路线,因为此文本最终会动态生成。 更新: 既然许