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

Spring Boot创建Book接口报500错误:传入ID不可为null

解决Spring Boot POST创建Book接口500错误:"The given id must not be null"

问题场景

基于Java Spring Boot、Spring JPA(Hibernate)和MySQL开发图书作者管理API时,调用创建Book的POST接口始终返回500 Internal Server Error,错误信息为:

The given id must not be null

调试后发现:请求映射到后端的Book实体对象中,主键字段为null,但JSON请求体里的isbn字段明明带有有效值。即便将原本命名为ISBN的类主键改成isbn,问题依然存在。

根因定位

最终确认问题根源:未遵循JSON属性与Java类字段首字母小写的最佳实践。

Java实体类字段的命名规范会直接影响Jackson的序列化/反序列化逻辑,若字段命名不符合首字母小写的常规约定(比如原字段用全大写ISBN),即便后续改为isbn,若存在隐性配置或命名细节问题,依然会导致JSON请求体中的isbn值无法正确绑定到实体类的主键字段,进而触发JPA保存时的主键非空校验,返回500异常。

解决方案

  • 严格遵循字段命名规范:确保Book实体类的主键字段使用首字母小写的命名,示例代码:
@Entity
public class Book {
    @Id
    private String isbn; // 首字母小写,与JSON请求体字段名一致
    // 其他字段、getter/setter方法
}
  • 显式指定字段映射(可选):如果需要自定义JSON字段与类字段的映射关系,可通过@JsonProperty注解明确绑定,避免命名歧义:
@Id
@JsonProperty("isbn")
private String isbn;
  • 检查全局序列化配置:确认项目中没有修改Jackson默认的属性命名策略,避免全局配置导致字段映射失败。

内容的提问来源于stack exchange,提问作者1million_ naira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:52:11