You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot按ID删除H2数据库Room实体报错:给定ID不得为null

故障原因

抛出The given id must not be null错误的直接原因是传入JPAdeleteById方法的ID参数为null,根本问题出在Controller层的参数绑定逻辑:@DeleteMapping("{roomNr}")定义的路径变量没有做显式绑定,Spring无法从URL路径中提取roomNr的值注入方法参数,无论请求路径里传什么ID,方法拿到的roomNr都是null。

修复方法

给Controller方法的roomNr参数添加@PathVariable注解,明确告知Spring该参数从URL路径片段中取值,修改后代码如下:

@CrossOrigin
@DeleteMapping("{roomNr}")
public void deleteOneZimmer(@PathVariable Integer roomNr){
    roomService.deleteOneRoom(roomNr);
}
补充说明
  • POST请求调试通过是因为POST接口一般使用@RequestBody接收请求体参数,绑定逻辑不受本次问题影响
  • 修复后重新请求room/1这类路径,Spring会自动把路径中的数字值提取赋值给roomNr,删除逻辑即可正常执行
  • 手动指定实体类ID(房间号)的配置没有问题,不需要额外配置ID自增策略

内容的提问来源于stack exchange,提问作者baphomet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:27:34