当决定使用 Long 或 long 作为控制器/服务方法参数的类型时,我总是遇到这种困境。
我应该使用 Long 因为 Hibernate 建议使用引用类型,这意味着我必须在服务中添加空检查,还是应该只使用 long 并抛出异常?
@DeleteMapping("/{id}")
ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteById(@PathVariable Long id) throws LookServiceException {
lookService.deleteById(id);
}
您调用的方法的签名不应指定参数。
如果参数是可选的 (
Long
),则应使用 required = false
作为参数,如果不是可选,则应使用 long
。
然后,您可以对
deleteById
使用自动装箱,它会自动将 Long
转换为 long
:
@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteById(@PathVariable long id) throws LookServiceException {
lookService.deleteById(id);
}