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

Hibernate使用@Inheritance单表继承出现Repeated column映射异常

问题解决方案

异常原因

你使用InheritanceType.SINGLE_TABLE单表继承策略时,@DiscriminatorColumn注解已经指定user_type作为鉴别器列,该列由Hibernate自动维护,会根据实体类型自动填充对应的@DiscriminatorValue值。你同时在User实体中手动声明了userType字段映射同名列,导致同一个列被重复映射,触发冲突。

解决方法

有两种可选方案,按需选择即可:

  • 方案一(无额外业务需求时推荐使用)
    直接删除User实体中的userType字段即可,鉴别器列的维护完全由Hibernate处理,不需要手动映射。

  • 方案二(业务需要读取user_type值时使用)
    保留userType字段,在@Column注解中添加insertable = false和updatable = false属性,告知Hibernate该字段仅用于查询,插入、更新操作时不参与列的维护,避免和鉴别器的自动管理逻辑冲突。修改后的代码如下:

@Column(name = "user_type", insertable = false, updatable = false)
private Integer userType;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 20:51:02