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

Spring Boot中Hibernate单表继承子类@Table注解报错修复咨询

修复Hibernate单表继承子类的@Table注解错误

错误原因很明确:在**单表继承(SINGLE_TABLE)**的层级结构中,子类不能标注@Table注解——整个继承树的表映射已经由根实体类Account声明完成,子类无需重复指定表名。

最小改动方案:直接删除CustomerAccount类上的@Table(name = "accounts")注解,保留@Entity即可。

修改后的代码如下:

根实体类Account(无改动)

@Entity
@Table(name = "accounts")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Account {

  @Id
  @Column(name = "id")
  private UUID id;
  // 其他字段、构造方法及业务逻辑
}

子类CustomerAccount(修改后)

@Entity
public class CustomerAccount extends Account {

  private String address;
  // 其他字段、构造方法及业务逻辑
}

补充说明:单表继承模式下,所有子类的字段都会存储在根类指定的accounts表中,Hibernate会自动通过DTYPE列(可通过@DiscriminatorColumn自定义列名和类型)区分不同的实体类型,因此子类不需要再配置表映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:23:11