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

Spring Boot中已定义@Id属性仍报实体无标识符错误,如何解决?

问题解决:JPA实体无标识符错误

错误原因

你当前使用的@Id注解来自Spring Data包(org.springframework.data.annotation.Id),但JPA实体要求使用Jakarta Persistence规范的@Id注解。Hibernate作为JPA实现,无法识别Spring Data的@Id,因此抛出实体无标识符的异常。

修改方案

只需替换@Id的导入包即可:

  • 删除原导入语句:import org.springframework.data.annotation.Id;
  • 替换为Jakarta Persistence的@Id:import jakarta.persistence.Id;

修改后的Book实体类代码:

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

import lombok.Getter;

@Entity
public class Book {
 
    @Getter
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(nullable = false, unique = true)
    private String title;

    @Column(nullable = false)
    private String author;

}

额外优化建议(可选)

如果使用Lombok,可以给title和author字段添加@Getter/@Setter,或者直接在类上添加@Data注解,简化代码编写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:02:14