No identifier specified for entity 從字面上不難看出來是沒有設置主鍵
因為沒有為標注為@Entity的實體類注明主鍵
import lombok.Data; import org.springframework.data.annotation.Id; import javax.persistence.*; @Data @Table(name = "user") @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column private String username; @Column private String name; @Column private Integer age; }
但實際上bean用@Id和@GenerateValue標注在ID上,仔細觀察發現是導錯包:import org.springframework.data.annotation.Id;這是Spring提供的;而應該導入javax.persistence.Id,很細微的差別,可能不注意看就錯了而且很難去排查問題
區別在於:org.springframework.data.annotation.Id是spring用來支持MongoDB等非關系型數據庫的持久化(spring-data-mongodb等);javax.persistence.Id適用於關系型的數據