JPA Buddy生成数据库快照时报实体ID属性为空错误求助
报错原因
问题出在TransactionGroup实体的getId()方法上——你错误地给这个方法添加了@ManyToOne注解。这个注解是用来声明多对一关联关系的,完全不应该用在ID属性的getter方法上。
JPA Buddy在解析实体元数据时,会被这个错误注解干扰,无法正确识别id字段作为实体的主键,最终导致抛出“Id attribute is null for entity”的错误。把long改成Long没用,因为核心问题不是ID的类型,而是错误的注解。
修复方案
直接删除getId()方法上的@ManyToOne注解即可,修正后的TransactionGroup实体代码如下:
@Entity @Table(name = "Transaction_Group") public class TransactionGroup { @Id @GeneratedValue private long id; @TenantId @Column(name = "tenant_id", nullable = false) private String tenantId; @Column(name = "timestamp", nullable = false) private long timestamp; // 移除了错误的@ManyToOne注解 public long getId() { return id; } public String getTenantId() { return tenantId; } public long getTimestamp() { return timestamp; } }
修正后重新生成数据库快照,问题就能解决。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

