Long 与控制器中参数类型的 long

问题描述 投票:0回答:1

当决定使用 Long 或 long 作为控制器/服务方法参数的类型时,我总是遇到这种困境。

我应该使用 Long 因为 Hibernate 建议使用引用类型,这意味着我必须在服务中添加空检查,还是应该只使用 long 并抛出异常?

@DeleteMapping("/{id}")
ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteById(@PathVariable Long id) throws LookServiceException {
lookService.deleteById(id);
}
java spring spring-boot hibernate
1个回答
0
投票

您调用的方法的签名不应指定参数。

如果参数是可选的 (

Long
),则应使用
required = false
作为参数,如果不是可选,则应使用
long

然后,您可以对

deleteById
使用自动装箱,它会自动将
Long
转换为
long
:

@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteById(@PathVariable long id) throws LookServiceException {
    lookService.deleteById(id);
}
© www.soinside.com 2019 - 2024. All rights reserved.